在实际应用中经常有这种需求,按照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;
查询结果和执行计划如图...3所示:
图3
从执行计划看,使用变量的写法性能更好一些。