位置: 编程技术 - 正文
这里介绍sql server里面的一个使用实例:
CREATE TABLE tb(province nvarchar(),city nvarchar(),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
结果:
广东 江苏 7陕西 9NULL
select case when grouping(province)=1 then '合计' else province end as 省,sum(score) as 分数 from tb group by province with rollup
结果:
广东 江苏 7陕西 9合计
2、两级,中间小计最后汇总
select province as 省,city as 市,sum(score) as 分数 from tb group by province,city with rollup
结果:
广东 东莞 3广东 广州 5广东 珠海 2广东 NULL 江苏 南京 6江苏 苏州 1江苏 NULL 7陕西 安康 4陕西 汉中 2陕西 西安 3陕西 NULL 9NULL NULL
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
结果:
广东 东莞 3 0 0广东 广州 5 0 0广东 珠海 2 0 0广东 NULL 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 1 1
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广东 小计 江苏 南京 6江苏 苏州 1江苏 小计 7陕西 安康 4陕西 汉中 2陕西 西安 3陕西 小计 9合计 NULL
推荐整理分享sql rollup用法 小计汇总(sql server rollup函数),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:sqlplus rollback,sql role,sqlplus rollback,sql server rollup函数,sqlserver rollup,sql中rollup的使用,sqlserver rollup,rollnumber sql,内容如对您有帮助,希望把文章链接给更多的朋友!
SQL Server “备份集中的数据库备份与现有的数据库不同”解决方法 以前一直使用SQLServer,现在跟潮流都这么紧,而且制定要求使用SQLServer,就在现在的项目中使用它了。对于SQLServer,有几个地方是要注意的,
SQL 学习笔记 公用表表达式(CTE) 公用表表达式(CTE)可以认为是在单个SELECT、INSERT、UPDATE、DELETE或CREATEVIEW语句的执行范围内定义的临时结果集。CTE与派生表类似,具体表现在不存储为对
SQL学习笔记 APPLY 运算符 使用APPLY运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来
上一篇:SqlServer2005 链接服务器用法(sqlserver2008连接)
友情链接: 武汉网站建设