GROUP BY GROUPING SETS 示例
--
建表
create table TEst1
(
ID VARCHAR2(2),
co_CODE VARCHAR2(10),
T_NAME VARCHAR2(10),
Money INTEGER,
P_code VARCHAR2(10)
); --插入基础数据 insert into TEST1 (ID, CO_CODE, T_NAME, MONEY, P_CODE)
values ('', 'YB0101', '单位1', 50, 'YB01'); insert into TEST1 (ID, CO_CODE, T_NAME, MONEY, P_CODE)
values ('', 'YB0101', '单位1', 20, 'YB01'); insert into TEST1 (ID, CO_CODE, T_NAME, MONEY, P_CODE)
values ('', 'YB0101', '单位1', 30, 'YB01'); insert into TEST1 (ID, CO_CODE, T_NAME, MONEY, P_CODE)
values ('', 'YB0102', '单位2', 10, 'YB01'); insert into TEST1 (ID, CO_CODE, T_NAME, MONEY, P_CODE)
values ('', 'YB0102', '单位2', 20, 'YB01'); insert into TEST1 (ID, CO_CODE, T_NAME, MONEY, P_CODE)
values ('', 'YB01', '单位', 15, null); insert into TEST1 (ID, CO_CODE, T_NAME, MONEY, P_CODE)
values ('', 'YB01', '单位', 25, null); --------------------------
--测试 GROUP BY GROUPING SETS
SELECT *
FROM (SELECT ID, CO_CODE, T_NAME, MONEY, P_CODE, SM, SUM(SM) SSM
FROM (SELECT ID,
(CASE
WHEN CO_CODE IS NULL THEN
P_CODE
ELSE
CO_CODE
END) CO_CODE,
T_NAME,
MONEY,
P_CODE,
SM
FROM (SELECT ID,
CO_CODE,
T_NAME,
MONEY,
P_CODE,
SUM(MONEY) SM
FROM TEST1
GROUP BY GROUPING SETS((ID, CO_CODE, T_NAME, MONEY, P_CODE),(P_CODE)))
WHERE (P_CODE IS NOT NULL OR CO_CODE IS NOT NULL))
GROUP BY GROUPING SETS((CO_CODE, ID, T_NAME, MONEY, P_CODE, SM), CO_CODE)
ORDER BY CO_CODE, ID NULLS FIRST)
WHERE (P_CODE IS NULL OR
(CO_CODE IS NOT NULL AND P_CODE IS NOT NULL AND CO_CODE <> P_CODE)) ------------------------
原始表:
处理之后结果:
GROUP BY GROUPING SETS 示例的更多相关文章
- Group By Grouping Sets
Group by分组函数的自定义,与group by配合使用可更加灵活的对结果集进行分组,Grouping sets会对各个层级进行汇总,然后将各个层级的汇总值union all在一起,但却比单纯的g ...
- Oracle PL/SQL之GROUP BY GROUPING SETS
[转自] http://blog.csdn.net/t0nsha/article/details/6538838 使用GROUP BY GROUPING SETS相当于把需要GROUP的集合用UNIO ...
- group by <grouping sets(...) ><cube(...)>
GROUP BY GROUPING SETS() 后面将还会写学习 with cube, with rollup,以及将它们转换为标准的GROUP BY的子句GROUP SET(), CU ...
- SQL GROUP BY GROUPING SETS,ROLLUP,CUBE(需求举例)
实现按照不同级别分组统计 关于GROUP BY 中的GROUPING SETS,ROLLUP,CUBE 从需求的角度理解会更加容易些. 需求举例: 假如一所学校只有两个系, 每个系有两个专业, 每个专 ...
- (4.6)sql2008中的group by grouping sets
最近遇到一个情况,需要在内网系统中出一个统计报表.需要根据不同条件使用多个group by语句.需要将所有聚合的数据进行UNION操作来完成不同维度的统计查看. 直到发现在SQL SERVER 200 ...
- GROUP BY中ROLLUP/CUBE/GROUPING/GROUPING SETS使用示例
oracle group by中rollup和cube的区别: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句.CUBE ROLLUP 是用于统计数据的. 实验 ...
- Group By 多个分组集小结 --GROUPING SETS,GROUP BY CUBE,GROUP BY ROLLUP,GROUPING(),GROUPING_ID()
T-SQL 多个分组集共有三种 GROUPING SETS, CUBE, 以及ROLLUP, 其中 CUBE和ROLLUP可以当做是GROUPING SETS的简写版 示例数据库下载: http:// ...
- SQL Server 之 GROUP BY、GROUPING SETS、ROLLUP、CUBE
1.创建表 Staff CREATE TABLE [dbo].[Staff]( ,) NOT NULL, ) NULL, ) NULL, ) NULL, [Money] [int] NULL, [Cr ...
- [Oracle] Group By 语句的扩展 - Rollup、Cube和Grouping Sets
常常写SQL语句的人应该知道Group by语句的主要使用方法是进行分类汇总,以下是一种它最常见的使用方法(依据部门.职位分别统计业绩): SELECT a.dname,b.job,SUM(b.sal ...
随机推荐
- MySQL用Load Data local infile 导入部分数据后中文乱码
今天在两台MySQL服务器之间导数据,因为另一个MySQL服务器是测试用的,差一个月的数据,从现有MySQL服务器select到一个文件,具体语句是: select * from news where ...
- MySQL Workbench出现:Error Code: 2013. Lost connection to MySQL server during query的问题解决
解决办法: [Edit]->[Preference]->[SQL Editor] 将下图DBMS connection read time out (in seconds)适当调大: 参考 ...
- java.lang.NoClassDefFoundError: org/json/JSONException
问题: 解决办法:
- UVA - 11077 Find the Permutations (置换)
Sorting is one of the most usedoperations in real life, where Computer Science comes into act. It is ...
- DeepLearning to digit recognizer in kaggle
DeepLearning to digit recongnizer in kaggle 近期在看deeplearning,于是就找了kaggle上字符识别进行练习.这里我主要用两种工具箱进行求解.并比 ...
- 自己实现的一个 .net 缓存类(原创)
public class CacheContainer { private static Hashtable ht = new Hashtable(); /// <summary> /// ...
- [计蒜客] tsy's number 解题报告 (莫比乌斯反演+数论分块)
interlinkage: https://nanti.jisuanke.com/t/38226 description: solution: 显然$\frac{\phi(j^2)}{\phi(j)} ...
- css3 背景background
Css3背景<background> Css3包含多个新的背景属性,它们提供了对背景更强大的控制.可以自定义背景图的大小,可以规定背景图片的定位区域,css3还允许我们为元素使用多个背景图 ...
- Endnote导入共享数据
Endnote导入共享数据 Endnote是我们经常使用的参考文献管理工具.但是,在云计算还不是很普及的今天,往往每台电脑上都有自己的endnote数据库.这样,换了电脑,要使用同样的参考文献数据时, ...
- NOIP2013 D1T3 货车运输
[NOIP2013T3]货车运输 背景 noip2013day1 描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重 量限制,简称限重.现在有 q 辆货 ...