rollup用法实例分析-sql小计汇总

教程大全 2026-01-08 05:36:45 浏览

这里介绍sql server2005里面的一个使用实例:CREATE TABLE tb(province nvarchar(10),city nvarchar(10),score int)INSERT tb SELECT '陕西','西安',3UNION all SELECT '陕西','安康',4UNION ALL SELECT '陕西','汉中',2UNION ALL SELECT '广东','广州',5UNION ALL SELECT '广东','珠海',2UNION ALL SELECT '广东','东莞',3UNION ALL SELECT '江苏','南京',6UNION ALL SELECT '江苏','苏州',1GO 1、 只有一个汇总 select province as 省,sum(score) as 分数 FROM tb group by province WITH rollup结果:广东 10江苏 7陕西 9NULL 26select 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广东 NULL 10江苏 南京 6江苏 苏州 1江苏 NULL 7陕西 安康 4陕西 汉中 2陕西 西安 3陕西 NULL 9NULL NULL 26select 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结果:广东 东莞 3 0 0广东 广州 5 0 0广东 珠海 2 0 0广东 NULL 10 0 1江苏 南京 6 0 0江苏 苏州 1 0 0江苏 NULL 7 0 1陕西 安康 4 0 0陕西 汉中 2 0 0陕西 西安 3 0 0陕西 NULL 9 0 1NULL NULL 26 1 1select 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合计 NULL 26

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐