关于SQL的分组汇总统计(关键字 Grouping) - 吴小贱就是矫情

demo8 2021-08-07 原文


关于SQL的分组汇总统计(关键字 Grouping)

在做数据分组查询的时候我们经常会用到分组汇总查询,做个简单的例子:

create table #bbb (大类 nvarchar(10),小类 nvarchar(10),酒水名称 nvarchar(20),数量 int,单价 Money)
-----------------------------------------------------
insert into  #bbb select \'酒水\',\'啤酒\',\'青岛\',10,5
insert into  #bbb select \'酒水\',\'啤酒\',\'哈尔滨\',13,5
insert into  #bbb select \'酒水\',\'啤酒\',\'燕京\',14,6
insert into  #bbb select \'酒水\',\'啤酒\',\'青岛春生\',15,8


insert into  #bbb select \'酒水\',\'白酒\',\'老白干\',18,8
insert into  #bbb select \'酒水\',\'白酒\',\'二锅头\',30,5
insert into  #bbb select \'酒水\',\'白酒\',\'邵大\',20,15
insert into  #bbb select \'酒水\',\'白酒\',\'茅台\',8,200

insert into  #bbb select \'酒水\',\'红酒\',\'长城干红\',90,30
insert into  #bbb select \'酒水\',\'红酒\',\'长城甜红\',30,20
insert into  #bbb select \'酒水\',\'红酒\',\'解百纳\',10,55
---------------------------------------------------------
insert into  #bbb select \'香烟\',\'本地\',\'中南海\',10,5
insert into  #bbb select \'香烟\',\'本地\',\'XXXOOO\',13,8


insert into  #bbb select \'香烟\',\'国内\',\'白沙\',18,5
insert into  #bbb select \'香烟\',\'国内\',\'芙蓉王\',30,25

insert into  #bbb select \'香烟\',\'进口\',\'rrr\',90,30
insert into  #bbb select \'香烟\',\'进口\',\'tttt\',30,20
---------------------------------------------------------
insert into  #bbb select \'食品\',\'全胜\',\'全胜食品\',100,1
insert into  #bbb select \'食品\',\'闵城\',\'XXX\',130,8


insert into  #bbb select \'食品\',\'哇哈哈\',\'矿泉水\',208,1
insert into  #bbb select \'食品\',\'百事\',\'百事可乐\',300,2.5

insert into  #bbb select \'食品\',\'可口可乐\',\'可口可乐\',250,3
insert into  #bbb select \'食品\',\'oooo\',\'tttt\',30,20
------------------------------------------------------


select 
case when grouping([小类]) = 1 then [大类] else \'\' end as [大类],
case when grouping([酒水名称]) = 1 then [小类] else \'\' end as [小类],
[酒水名称],
case when grouping([酒水名称]) = 1 then null else min([单价])end as[单价],
sum([数量])as [数量],
sum([数量]*[单价])as[总额] from #bbb
group by [大类],[小类],[酒水名称] with rollup
having grouping([大类]) = 0
order by grouping([大类])desc,
case when grouping([大类]) = 0 then [大类] end desc,
grouping([小类])desc,
case when grouping([小类]) = 0 then [小类] end desc,
grouping(酒水名称)desc,
case when grouping(酒水名称) = 0 then 酒水名称 end desc

drop table #bbb

执行结果如下:

发表于
2013-05-16 15:16 
吴小贱就是矫情 
阅读(870
评论(0
编辑 
收藏 
举报

 

版权声明:本文为demo8原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/demo8/archive/2013/05/16/3081897.html

关于SQL的分组汇总统计(关键字 Grouping) - 吴小贱就是矫情的更多相关文章

  1. PowerDesigner使用教程 —— 概念数据模型

    一、概念数据模型概述     概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip […]...

  2. 中兴捧月小结 – 小交响曲

    中兴捧月小结 对于中兴捧月比赛的一点总结 今天得知中兴捧月的比赛,作品未能通过复赛,失落是有的,毕竟断断续续也 […]...

  3. 随机生成颜色以及十六进制颜色与RGB颜色值的相互转换 – ゛白昼怎懂夜的黑ヽ

    随机生成颜色以及十六进制颜色与RGB颜色值的相互转换 span { color: rgba(0, 128, 0 […]...

  4. 虚幻4外包团队-推荐非常全面的的Unreal教程 – WPF外包团队 — 长年承接WPF项目外包与WP8应用外包

    《Unreal SDK 游戏开发从入门到精通(UnrealScript语法、UI Scene界面、UDK独立开 […]...

  5. linux 修改时间 – [命令操作]

    我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成1996年6月10日的命令如下。 #da […]...

  6. 类似西瓜视频、抖音的自动播放库 – Exlo

    类似西瓜视频、抖音的自动播放库 视频自动播放使用 AutoVideoPlayer Play/pause vid […]...

  7. 在线翻译工具 – Soul

    在线翻译工具 Google在线翻译 ( 英语 翻译成 中文简体 BETA )     altavista 在线 […]...

  8. SQL2008附加数据库 – 老十

    SQL2008附加数据库 首先执行数据库的附加。 附加完成之后需要做的工作是要将登录名与附加的数据库的用户名进 […]...

随机推荐

  1. mysql5.6一键安装脚本

    安装环境 CentOS-7-x86_64-DVD-1511.iso mysql-5.6.29-linux-gl […]...

  2. nodeJS详解2

    nodeJs详解,包括模块化,模块倒入,os模块,path模块,fs模块,http模块,querystring […]...

  3. 5090 众数

    个人博客:doubleq.win 090 众数    时间限制: 1 s  空间限制: 1000 KB  题目 […]...

  4. 生活工具——pdf在线转换成word免费工具

      1、加加PDF:addpdf.cn/ 2、迅捷PDF转换器:app.xunjiepdf.com/ 3、PD […]...

  5. Micropython Turnipbit 换挡风扇 旋转按钮控制直流电机转速

    学过物理学的我们都知道换挡风扇的原理,一般按钮控制电感分压或者电容分压,以达到控制电流的目的。那么我们可不可以 […]...

  6. ARP攻击原理及解决方法 – 左岸麦田

    ARP攻击原理及解决方法 木马程序对游戏玩家也是痛心的伤,下面是信息之舟电脑之家为您推荐的解决方案: 【故障原 […]...

  7. java中String.indexOf()用法

    查找指定字符或字符串在字符串中第一次出现地方的索引,未找到的情况返回 -1. 例如 String.indexO […]...

  8. 超详细实战教程丨多场景解析如何迁移Rancher Server

    走心万字长文!Step by Step,教你如何在Rancher单节点安装或高可用安装的情况下进行Ranche […]...

展开目录

目录导航