关于oracle中order by和group by

       会一点数据库语言的都知道order by是排序,group by是分组,在进行统计数据的时候就会用到group by,没有在聚合函数里面的就必须在group by里,有时候order by和group by是一起使用的,order by里面的字段必须来源于group by,先使用分组后排序。、

1使用了orderby和group by组合的例子

create table TEST_TB_GRADE
(
  id        NUMBER(10) not null,
  user_name VARCHAR2(20 CHAR),
  course    VARCHAR2(20 CHAR),
  score     FLOAT
)

2行变列且显示将不同科目按不同分数段进行统计



运行结果如下:


2使用了group by

select account,
  (select count(*) from  dispatch_info_bak0921 t1 where t1.operator= e.account )as dispatch_count,
    (select count(*)  from  collective_contract t2 where t2.aae011   = e.account) as  collective_count ,
    (select count(*)  from  special_hours t3 where t3.aae011  =  e.account)as special_count ,
    (select count(*)  from audit_result t4 where t4.review_user  =  e.account) as audit_count,
    (select count(*)  from  contract_rollback_info  t5 where t5.aae011  =  e.account)as rollback_count
   from  ACCOUNT_AREA_CODE e
group by e.account

这里我不用group by也可以运行,只是数据是顺序是打乱的。

而且这个sql语句运行效率数据量大的时候,操作的是6张表的关联查询,就会很慢,我们可以用oracle的marge合并函数进行更新插入列操作,就不会每次操作6张表了。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值