这里介绍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
NULL 26
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
广东 NULL 10
江苏 南京 6
江苏 苏州 1
江苏 NULL 7
陕西 安康 4
陕西 汉中 2
陕西 西安 3
陕西 NULL 9
NULL NULL 26
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 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 1
NULL NULL 26 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
广东 小计 10
江苏 南京 6
江苏 苏州 1
江苏 小计 7
陕西 安康 4
陕西 汉中 2
陕西 西安 3
陕西 小计 9
合计 NULL 26
sql小计汇总 rollup用法实例分析
2021-10-07 22:40数据库技术网 数据库技术
rollup在oracle ,sql-server里面都有有。
延伸 · 阅读
- 2022-03-09sql语句中union的用法与踩坑记录
- 2022-03-09SQL利用游标遍历日期查询的过程详解
- 2022-03-08SQL删除重复的电子邮箱力扣题目解答流程
- 2022-03-03SQL行转列与列转行
- 2022-03-03一篇学会 Hive SQL 参数与性能调优
- 2022-03-03C#使用SQL DataAdapter数据适配代码实例
- 数据库技术
在将文本文件导入 MySQL 表时,MySQL 如何评估文本文件中写入的两
假设如果文本文件中写入的两行之间有一个空行,那么在将该文本文件导入 MySQL 表时,MySQL 会将其评估为数据行。可以通过以下示例来理解 - 示例 假设我...
- 数据库技术
如何实现MySQL中修改表结构的语句?
如何实现MySQL中修改表结构的语句? MySQL 是一种流行的关系型数据库管理系统(RDBMS),用于存储和管理大量的数据。在实际的开发过程中,经常需要修改...
- 数据库技术
利用MongoDB技术开发中遇到的数据删除问题的解决方案探究
利用MongoDB技术开发中遇到的数据删除问题的解决方案探究 引言: 随着互联网和移动互联网的兴起,数据的管理变得愈发重要。在开发过程中,我们经常需...
- 数据库技术
oracle可以重复索引吗
Oracle不允许重复索引。在Oracle数据库中,创建重复索引是不被允许的,并且会引发错误。 索引是一种用于提高数据库查询性能的数据结构。它们允许快速访...
- 数据库技术
阿里云创建云数据库服务器
阿里云 是中国领先的云计算服务提供商,提供了一系列强大的云计算产品和服务。其中, 阿里云 数据库服务器(ApsaraDB for RDS)是一种托管式的关系型数据...
- 数据库技术
SQL中case when then else end用法实例
一、阐述 case when then else end 可以理解为java的if-else if -else。可以理解为流程控制语句或条件控制语句。可以实现资料获取的时候,可以更多的条件和自定义...
- 数据库技术
阿里云服务器怎么拷贝数据库
阿里 云服务器 是一种云计算服务,提供了强大的云服务器资源,让用户可以方便地创建、管理和运行自己的应用程序。拷贝数据库是在服务器迁移、备份...
- 数据库技术
sql小计汇总 rollup用法实例分析
rollup在oracle ,sql-server里面都有有。...