8第八章CTE递归及分组汇总高级部分(多维数据集)
这里贴图太麻烦。。。算了
UNION 等集合操作符:
UNION 等以第一个 SELECT  的 列明 作为 整个结果集的列明,整个结果集 唯一认可的 唯一逻辑处理阶段 是 ORDER BY 
这个意思是说 只有 ORDER BY 是对整个结果集作用的,其它都操作都作用在 UINON 两侧的 子集合中。
EXCEPT 操作符也是 提出了重复值的
此外,它认为两个 null 值是相等的,
而 NOT EXISTS 认为两个 null 值不相等,
集合操作符的 优先级是 INTERSECT 最大,其它都一样
CTE 递归 是个 重点, 分为 单个 定位点成员,单个递归成员,多个定位点,多个递归成员
1. 单个 定位点成员,单个递归成员
//todo
2. 多个定位点,多个递归成员
// todo
特别注意 只有一个维度去观看的时候,WITH CUBE 或者 WITH ROLLUP 的结果是一样的。
而下面 例子中的 WITH CUBE 或者 WITH ROLLUP 语句都会被 GROUP BY 后面的 CUBE(col1,col2) 或者 ROLLUP(col1,col2) 所替代,因为这种更加符合 ISO 标准些
IF object_id('dbo.Inventory','U') IS NOT NULL 
DROP TABLE dbo.Inventory 
GO
CREATE TABLE Inventory(
    Item varchar(5),
    Color char(4),
    Qty int
)
INSERT INTO dbo.Inventory 
VALUES('桌子','蓝色',2),
        ('桌子','红色',1),
        ('桌子','蓝色',3),
        ('椅子','蓝色',4),
        ('椅子','红色',6),
        ('椅子','红色',5)
select Item,Color,SUM(Qty) AS Sum_Qty from dbo.Inventory GROUP BY Item,Color WITH CUBE  --  Group by Item,Color WITH CUBE 也可以替换为 Group by CUBE(Item,Color) 以下同理
select Item,Color,SUM(Qty) AS Sum_Qty from dbo.Inventory GROUP BY Item,Color with rollup
重点:
区分 空值与汇总值
使用 Grouping(Item) 或者 Grouping(Color) 函数 去区分
当 Grouping 函数返回 1 时候证明是汇总的,否则 就是真正的 null 值
1. Cube ------======---
select 
CASE WHEN Grouping(Item) = 1 
Then '汇总' ELSE ISNULL(Item,'未知') 
End as Item,
CASE WHEN Grouping(Color) = 1 Then '汇总' ELSE ISNULL(Color,'未知') End as Item,
SUM(Qty) AS Sum_Qty 
from dbo.Inventory GROUP BY Item,Color with cube
2. 对于 ROLLUP ------======
select 
CASE WHEN Grouping(Item) = 1 
Then '汇总' ELSE ISNULL(Item,'未知') 
End as Item,
CASE WHEN Grouping(Color) = 1 Then '汇总' ELSE ISNULL(Color,'未知') End as Item,
SUM(Qty) AS Sum_Qty 
from dbo.Inventory GROUP BY Item,Color with rollup
3.怎样返回指定维度的 汇总:
1。 使用派生表 然后 对派生表 做 where 条件筛选
即 把上面汇总的 select 查询语句做成一个 子查询数据集
然后从这个 数据集中 筛选 Item is not null and Color is null 诸如此类的。
2.   使用GROUPING SETS 指定仅需要获取所需的分组
不带 null, null 这种情况的:
带上 null , null 这种情况的 
原文链接

本文由豆约翰博客备份专家远程一键发布

8第八章CTE递归及分组汇总高级部分(多维数据集)(转载)的更多相关文章

  1. 第八章 CTE 递归 及 分组汇总 高级部分(多维数据集)

    UNION 等集合操作符: UNION 等以第一个 SELECT  的 列明 作为 整个结果集的列明,整个结果集 唯一认可的 唯一逻辑处理阶段 是 ORDER BY  这个意思是说 只有 ORDER ...

  2. MongoDB分组汇总操作,及Spring data mongo的实现

    转载请在页首注明作者与出处 一:分组汇总 1.1:SQL样例 分组汇总的应用场景非常多,比如查询每个班级的总分是多少,如果用关系形数据库,那么sql是这样子的 ),class from score g ...

  3. SQL Server中公用表表达式 CTE 递归的生成帮助数据,以及递归的典型应用

    本文出处:http://www.cnblogs.com/wy123/p/5960825.html 我们在做开发的时候,有时候会需要一些帮助数据,必须需要连续的数字,连续间隔的时间点,连续的季度日期等等 ...

  4. TSql CTE 递归原理探究

    CTE是如何进行递归的?产生递归的条件有三个,分别是 初始值 自身调用自身 结束递归的条件 1,示例代码 ;with cte as ( as jd union all as jd from cte ) ...

  5. gridpanel分组汇总

    [ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总 2015-05-31     86 本文地址:http://blog.csdn.net/sushengmi ...

  6. Grid分组汇总

    Ext.onReady(function () {                Ext.define('personInfo', {                    extend: 'Ext. ...

  7. SQL 递归查询,意淫CTE递归的执行步骤

    今天用到了sql的递归查询.递归查询是CTE语句with xx as(....)实现的. 假如表Category数据如下. 我们想查找机枪这个子分类极其层次关系(通过子节点,查询所有层级节点).以下是 ...

  8. tidyverse|数据分析常规操作-分组汇总(sumamrise+group_by)

    | 本文首发于 “生信补给站” https://mp.weixin.qq.com/s/tQt0ezYJj3H7x3aWZmKVEQ 使用tidyverse进行简单的数据处理: 盘一盘Tidyverse ...

  9. SQL笔记 - CTE递归实例:显示部门全称

    昨天在整理JS的Function时,示例是一个递归函数.说起递归,想起前段时间在搞CTE,那个纠结呀,看似容易,可我总抓不住门道,什么递归条件,什么结束条件,一头雾水...今天一大早就爬起来,果然不负 ...

随机推荐

  1. bzoj1984

    树链剖分在边上的应用比维护点稍微麻烦一点,是对每条边标号,并且要记录每个点父亲边的编号和重儿子然后注意各种细节线段树上和bzoj1858的维护方法类似,覆盖的优先级高于加具体见程序,完全是为了提升状态 ...

  2. 转自 x_x_的百度空间 搞ACM的你伤不起

    来源:http://roba.rushcj.com/?p=548 劳资六年前开始搞ACM啊!!!!!!!!!! 从此踏上了尼玛不归路啊!!!!!!!!!!!! 谁特么跟劳资讲算法是程序设计的核心啊!! ...

  3. 遍历Dataset并输出数据实例

    转自:http://www.cnblogs.com/csdm/archive/2010/02/02/1661808.html <%@ Page Language="C#" A ...

  4. ARM学习笔记1——Arm寄存器与模式的关系

    ARM微处理器上有37个32位的寄存器,其中有6个状态寄存器(一个CPSR,5个SPSR),其它31个为通用寄存器.在ARM的不同模式下,可以访问的物理寄存器是不同,如下图所示: 从图中可知,用户模式 ...

  5. Ubuntu12.04-64bits搭建FFmpeg环境

    所有的环境搭建动作请参考FFMpeg官方网站:http://www.ffmpeg.org/index.html 1. 获取源代码: git clone git://source.ffmpeg.org/ ...

  6. 知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET

    知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET undefined 公司介绍 - 数人科技 undefined

  7. Package org.xml.sax Description

    This package provides the core SAX APIs. Some SAX1 APIs are deprecated to encourage integration(集成:综 ...

  8. CSS 最核心的几个概念

    CSS 中最核心的几个概念,包括:盒模型.position.float等. 这些是 CSS 的基础,也是最常用的几个属性,它们之间看似独立却又相辅相成. 元素类型 HTML 的元素可以分为两种: 块级 ...

  9. 设置Win10文件资源管理器默认打开“这台电脑”

    当Windows系统进入Win7之后,任务栏默认的文件资源管理器图标功能是“库”:Win8/Win8.1的这一按钮打开的是“这台电脑”.进入Win10之后,目前这一功能默认变为“快速访问”(曾经被称为 ...

  10. LeetCode153:Find Minimum in Rotated Sorted Array

    Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...