在实际应用中经常有这种需求,按照select的字段中的部分字段分组聚合,比如下面的例子:
create table t1 (a varchar(20),b varchar(20),c int);...'b','456',2);
insert into t1 values('a','789',3);
insert into t1 values('b','123',4);
commit;
要求按字段a分组求和...,查询a,b和聚合值,并按a、b排序。...在Oracle里可以使用分析函数,写法如下:
select a,b,sum(c) over (partition by a) sum_c from t1 order by a,b;
查询结果和执行计划如图...sum(c) sum_c
from t1
group by a) t2
where t1.a = t2.a
order by t1.a , t1.b;
查询结果和执行计划如图