手机
当前位置:查字典教程网 >编程开发 >数据库其他 >sql小计汇总 rollup用法实例分析
sql小计汇总 rollup用法实例分析
摘要:这里介绍sqlserver2005里面的一个使用实例:CREATETABLEtb(provincenvarchar(10),citynvar...

这里介绍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用法实例分析】相关文章:

OLEDB和ODBC的区别(优缺点)

sql Union和Union All的使用方法

SQL中代替Like语句的另一种写法

Access转SqlServer的注意事项

错误代码:1100 Table 't_depart_info' was not locked with LOCK TABLES的解决方法

数据库安装包和升级包脚本工具RedGate使用介绍

如何用分表存储来提高性能 推荐

Hadoop2.X/YARN环境搭建--CentOS7.0系统配置

如何判断a、b、c三个字段同时为0则不显示这条数据

SQL服务器面临的危险和补救.读[十种方法]后感.

精品推荐
分类导航