【Teradata】grouping和rollup窗口函数
1.group by后带rollup子句
先按一定的规则产生多种分组,然后返回各个分组所产生的结果集的并集,且没有去掉重复数据(统计出的数据是求和还是最大值还是平均值等这就取决于SELECT后的聚合函数)。下面举例说明:
例1:Group by rollup(A ,B)
//返回如下3个分组的统计结果集的并集,且未去掉重复数据。
第一种:group by A,B
第二种:group by A
第三种:group by NULL (即没有分组,所有数据做一个统计)
例2:Group by rollup(A ,B,C)
//返回如下4种分组统计结果集的并集,且未去掉重复数据
第一种:group by A,B,C
第二种:group by A,B
第三种:group by A
第四种:group by NULL
例3:Group by C , rollup(A ,B)
//group by和rollup间还有其它列C,返回如下3种分组统计结果集的并集,且未去掉重复数据
第一种:group by C,A,B
第二种:group by C,A
第三种:group by C,NULL 等价于group by C
例4:Group by rollup(A ,(B,C))
//多列被括号括在一起时,视为一个整体。返回如下3中分组统计结果的并集,且未去掉重复数据
第一种:group by A,B,C
第二种:group by A
第三种:group by NULL
2.group by后带cube子句
group by后带rollup子句与group by后带cube子句的唯一区别就是:
例:Group by cube(A ,B,C)
//返回8种分组统计结果集的并集,且未去掉重复数据。
第一种:group by A,B,C
第二种:group by A,B
第三种:group by A,C
第四种:group by B,C
第五种:group by C
第六种:group by B
第七种:group by A
第八种:group by NULL
3.group by后带grouping sets子句
group by后带grouping sets子句效果,就是只返回按单个列分组后的统计数据,不返回多个列组合分组的统计数据。
例1:Group by grouping sets(A )
//返回1种分组统计结果集
第一种:group by A
例2:Group by grouping sets(A ,B)
//返回2种分组统计结果集的并集,且未去掉重复数据。
第一种:group by A
第二种:group by B
例3:Group by grouping sets (A ,B,C)
//返回3种分组统计结果集的并集,且未去掉重复数据。
第一种:group by A
第二种:group by B
第三种:group by C
CREATE MULTISET VOLATILE TABLE VTX,NO FALLBACK,NO LOG(
FST_Lvl_Brch_Org_Id VARCHAR(20)
,HQ_Org_Id VARCHAR(20)
,Sec_Brch_Org_Id VARCHAR(20)
,Inn_Org_Id VARCHAR(20)
,COL_6 INT
)NO PRIMARY INDEX
ON COMMIT PRESERVE ROWS; INSERT INTO VTX VALUES ('','','','',1);
INSERT INTO VTX VALUES ('','','','',2);
INSERT INTO VTX VALUES ('','','','',3);
INSERT INTO VTX VALUES ('','','','',4);
INSERT INTO VTX VALUES ('','','','',5);
INSERT INTO VTX VALUES ('','','','',6);
INSERT INTO VTX VALUES ('','','','',7);
INSERT INTO VTX VALUES ('','','','',8);
INSERT INTO VTX VALUES ('','','','',9); SELECT COALESCE(COALESCE(DECODE(FST_Lvl_Brch_Org_Id,'',HQ_Org_Id,FST_Lvl_Brch_Org_Id),COALESCE(Sec_Brch_Org_Id,Inn_Org_Id)),'')
,Sec_Brch_Org_Id
,DECODE(FST_Lvl_Brch_Org_Id,'',HQ_Org_Id,FST_Lvl_Brch_Org_Id)
,Inn_Org_Id
,SUM(COL_6)
FROM VTX
WHERE Sec_Brch_Org_Id=''
GROUP BY 1,
GROUPING SETS(Sec_Brch_Org_Id,DECODE(FST_Lvl_Brch_Org_Id,'',HQ_Org_Id,FST_Lvl_Brch_Org_Id),ROLLUP(Inn_Org_Id))
ORDER BY 1,2,3,4;
参考文档:
【Teradata】grouping和rollup窗口函数的更多相关文章
- SQL GROUP BY GROUPING SETS,ROLLUP,CUBE(需求举例)
实现按照不同级别分组统计 关于GROUP BY 中的GROUPING SETS,ROLLUP,CUBE 从需求的角度理解会更加容易些. 需求举例: 假如一所学校只有两个系, 每个系有两个专业, 每个专 ...
- Oracle:grouping和rollup
Oracle grouping和rollup简单测试 SQL,,,) group by department_id order by department_id; DEPARTMENT_ID SUM( ...
- Hive高级聚合GROUPING SETS,ROLLUP以及CUBE
scala> import org.apache.spark.sql.hive.HiveContextimport org.apache.spark.sql.hive.HiveContext s ...
- (2.4)DDL增强功能-数据汇总grouping、rollup、cube
参考:https://www.cnblogs.com/nikyxxx/archive/2012/11/27/2791001.html 1.rollup (1)rollup在group by 子句中使用 ...
- MS SQL 分类汇总参数 grouping(**)=1 rollup cubt
转:http://www.111cn.net/database/mssqlserver/43368.htm 本文章介绍了关于sql多级分类汇总实现方法及数据结构,有碰到问题的同学可参考一下. 据库结构 ...
- Oracle分析函数 — sum, rollup, cube, grouping用法
本文通过例子展示sum, rollup, cube, grouping的用法. //首先建score表 create table score( class nvarchar2(20), course ...
- Hive新功能 Cube, Rollup介绍
说明:Hive之cube.rollup,还有窗口函数,在传统关系型数据(Oracle.sqlserver)中都是有的,用法都很相似. GROUPING SETS GROUPING SETS作为GROU ...
- TSQL 分组集(Grouping Sets)
分组集(Grouping Sets)是多个分组的并集,用于在一个查询中,按照不同的分组列对集合进行聚合运算,等价于对单个分组使用“union all”,计算多个结果集的并集.使用分组集的聚合查询,返回 ...
- SQL基础教程(第2版)第8章 SQL高级处理:8-2 GROUPING运算符
第8章 SQL高级处理:8-2 GROUPING运算符 ■ GROUPING SETS——取得期望的积木● 只使用GROUP BY子句和聚合函数是无法同时得出小计和合计的.如果想要同时得到,可以使用G ...
随机推荐
- AngularJs_自定义注入对象_笔记1
A-自定义控件示例: 我的自定义控件文件为:angular-seagull2-common.js (function (window, angular) { 'use strict'; $urlPro ...
- [转]Angular4首页加载慢优化之路
本文转自:https://blog.csdn.net/itest_2016/article/details/80048398 Angular是一个比较完善的前端MVC框架,包含了模板,数据双向绑定,路 ...
- vb.net 数字大写
Private Function RMBChinese(ByVal Rmb As Double) As String Dim Rmbexp As String Dim Rmbda As String ...
- [PHP]PHP rpc框架hprose测试
建立composer.json { "name": "hprose/examples", "description": "exam ...
- Elastic-Job-分布式调度解决方案
Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成. Elastic-Job-Lite定位为轻量级无中心化解 ...
- spring aop 实践
之前用的ssm框架,大部分只是利用spring的IOC特性,很明显这能够为我们开发人员在对象的创建上面节省大部分时间.当相似得到业务越来越多,很多代码也是越来越重复,轮子是越来越重复,比如验证用户登录 ...
- eclipse安装阿里编码规约插件
点击帮助,Install New Software... 地址为https://p3c.alibaba.com/plugin/eclipse/update 然后选择安装, 一路next即可
- github 遇到的问题
目录 1.遇到的问题关联远程仓库,操作顺序如下:2.解决方法3.git merge 与 git rebase4.git pull 与 git pull --rebase5.更多参考 博客逐步迁移至 极 ...
- SSH框架用法,及作用(在一位菜鸟使用半年之后归纳的总结)
SSH框架从接触以来改变了我对代码的编写方式,从最初开始学习到勉强掌握可以说得到不少心得,以下内容出自java初学者对SSH的理解,如有不对的地方还请谅解,希望可以提出来与我交流,谢谢! SSH顾名思 ...
- 吴恩达机器学习笔记 —— 7 Logistic回归
http://www.cnblogs.com/xing901022/p/9332529.html 本章主要讲解了逻辑回归相关的问题,比如什么是分类?逻辑回归如何定义损失函数?逻辑回归如何求最优解?如何 ...