关于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
)
关于oracle中order by和group by_第1张图片
2行变列且显示将不同科目按不同分数段进行统计

关于oracle中order by和group by_第2张图片

关于oracle中order by和group by_第3张图片

运行结果如下:

关于oracle中order by和group by_第4张图片

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张表了。

你可能感兴趣的:(oracle)