sql rollup用法 小计汇总

2016-02-19 11:13 1 1 收藏

下面图老师小编跟大家分享sql rollup用法 小计汇总,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - 编程语言 】

这里介绍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

结果:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

广东 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

结果:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

广东 10
江苏 7
陕西 9
合计 26

2、两级,中间小计最后汇总

select province as 省,city as 市,sum(score) as 分数 from tb group by province,city with rollup

结果:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

广东 东莞 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

结果:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

广东 东莞 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

结果:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

广东 东莞 3
广东 广州 5
广东 珠海 2
广东 小计 10
江苏 南京 6
江苏 苏州 1
江苏 小计 7
陕西 安康 4
陕西 汉中 2
陕西 西安 3
陕西 小计 9
合计 NULL 26

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1596801.html

延伸阅读
标签: 电脑入门
Linux下chkconfig命令主要用于查询系统在每一个执行等级中执行的系统服务,那么chkconfig命令要如何使用呢?下面图老师小编就给大家介绍下Linux中chkconfig命令的具体用法。 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。 使用语法 ...
软件环境: Redhat Linux 5.2 用法: A. 从主引导记录中移走LILO并重存原先的windows MBR 1. c:> fdisk /mbr 2. #/sbin/lilo -u /dev/hda 3. #dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1 4. #cat /boot/boot.0300 > /dev/hda 注意:只有你原先安装windows...
Linux系统操作中,Logrotate是一款日志管理工具,可对Linux日志进行处理,在使用前,需要对Logrotate工具进行配置,下面图老师小编就给大家介绍下Linux中Logrotate工具的用法,一起来了解下吧。 1运行原理 Logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXIT...
说明:下文中的一些说明和示例代码摘自CSDN,恕不一一指明出处,在此一并对相关作者表示感谢! 1 语法 在Oracle中,可以创建以下两种临时表: 1) 会话特有的临时表 CREATE GLOBAL TEMPORARY ( ) ON COMMIT PRESERVE ROWS; 2) 事务特有的临时表 CREATE GLOBAL TEMPORARY ( ) ON COMMIT DELETE ...
标签: 电脑入门
近来系统之家的图老师小编发现,很多Linux初学者对free命令不是很了解,其实Linux下free命令主要用于查看当前系统内存的使用情况,具体的随图老师小编一起来了解下吧。 free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一 1.命令格式: f...

经验教程

114

收藏

36
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部