在实际应用中经常有这种需求,按照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分组求和...写法如下:
select a,b,sum(c) over (partition by a) sum_c from t1 order by a,b;
查询结果和执行计划如图1所示:
图1
在MySQL...中可以用两种方式实现:
-- 写法一,使用内连接,两次扫表
select t1.a, t1.b, t2.sum_c
from t1,
(select a, sum(c) sum_c...参考: mysql实现oracle分析函数功能 over