作者:ikmb@163.com
情景:有一个表
id age g
1 1 a
2 1 b
3 1 a
4 1 c
5 1 c
6 1 b
7 1 b
8 1 a
我们想按照g分组,同时计算age的总合
版本一:
select sum(age) from t1 group by g
结果:
3
3
2
分析:可以看出每一个分组得出了一个总合,不是总共的总计标量
版本二:
declare @r_count_sql int
select @r_count_sql=0
select @r_count_sql=sum(age) from t1 group by g
select @r_count_sql
结果:
2
分析:可以看出只返回了最后一个分组的总计
版本三:
declare @r_count_sql int
--必须先赋初值
select @r_count_sql=0
select @r_count_sql=@r_count_sql+sum(age) from t1 group by g
select @r_count_sql
结果:
8
分析:结果正确
原文链接:/javaschema/287513.html