时间:2021-05-24
这里介绍sql server2005里面的一个使用实例:
CREATE TABLE tb(province nvarchar(10),city nvarchar(10),score int)
INSERT tb SELECT '陕西','西安',3
UNION ALL SELECT '陕西','安康',4
UNION ALL SELECT '陕西','汉中',2
UNION ALL SELECT '广东','广州',5
UNION ALL SELECT '广东','珠海',2
UNION ALL SELECT '广东','东莞',3
UNION ALL SELECT '江苏','南京',6
UNION ALL SELECT '江苏','苏州',1
GO
1、 只有一个汇总
select province as 省,sum(score) as 分数 from tb group by province with rollup
结果:
广东10
江苏7
陕西9
NULL26
select case when grouping(province)=1 then '合计' else province end as 省,sum(score) as 分数 from tb group by province with rollup
结果:
广东10
江苏7
陕西9
合计26
2、两级,中间小计最后汇总
select province as 省,city as 市,sum(score) as 分数 from tb group by province,city with rollup
结果:
广东东莞3
广东广州5
广东珠海2
广东NULL10
江苏南京6
江苏苏州1
江苏NULL7
陕西安康4
陕西汉中2
陕西西安3
陕西NULL9
NULLNULL26
select province as 省,city as 市,sum(score) as 分数,grouping(province) as g_p,grouping(city) as g_c from tb group by province,city with rollup
结果:
广东东莞300
广东广州500
广东珠海200
广东NULL1001
江苏南京600
江苏苏州100
江苏NULL701
陕西安康400
陕西汉中200
陕西西安300
陕西NULL901
NULLNULL2611
select case when grouping(province)=1 then '合计' else province end 省,
case when grouping(city)=1 and grouping(province)=0 then '小计' else city end 市,
sum(score) as 分数
from tb group by province,city with rollup
结果:
广东东莞3
广东广州5
广东珠海2
广东小计10
江苏南京6
江苏苏州1
江苏小计7
陕西安康4
陕西汉中2
陕西西安3
陕西小计9
合计NULL26
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
WITHROLLUP在生成包含小计和合计的报表时,ROLLUP运算符很有用。ROLLUP运算符生成的结果集类似于CUBE运算符所生成的结果集。复制代码代码如下:
rollup函数本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种环境准备creat
现有表A,内容如下:编码仓库数量01A601B702A802B9现在想按编码查询出这种格式:01A601B7汇总小计:1302A802B9汇总小计:17问:该如
客户提出需求,针对某一列分组加上小计,合计汇总。网上找了一些有关SQL加合计的语句。都不是很理想。决定自己动手写。思路有三个:1.很多用GROUPPING和RO
今天用实例总结一下groupby的用法。归纳一下:groupby:ALL,Cube,RollUP,Compute,Computeby创建数据脚本CreateTa