rollup&&cube
group by 擴展 rollup&&cube
--按job分組計算不同job的匯總工資
SELECT job, SUM (sal)
FROM emp
GROUP BY job
ORDER BY job;
--向rollup傳遞一列
SELECT job, SUM (sal)
FROM emp
GROUP BY ROLLUP (job)
ORDER BY job;
--向rollup傳遞多列,根據job小計
SELECT job, deptno, SUM (sal)
FROM emp
GROUP BY ROLLUP (job, deptno)
ORDER BY job, deptno;
--修改傳遞給rollup的列的位置,根據部門小計
SELECT deptno, job, SUM (sal)
FROM emp
GROUP BY ROLLUP (deptno, job)
ORDER BY deptno, job;
--rollup與其它聚合函數使用,任何聚合函數都可以和rollup一起使用
SELECT deptno, job, ROUND (AVG (sal), 2)
FROM emp
GROUP BY ROLLUP (deptno, job)
ORDER BY deptno, job;
--使用cube子句
SELECT deptno, job, SUM (sal)
FROM emp
GROUP BY CUBE (deptno, job)
ORDER BY deptno, job;
--cube改變順序
SELECT job, deptno, SUM (sal)
FROM emp
GROUP BY CUBE (job, deptno)
ORDER BY job, deptno;
--grouping 返回0 1
SELECT GROUPING (job), job, SUM (sal)
FROM emp
GROUP BY ROLLUP (job)
ORDER BY job;
--轉換grouping返回值為有意義的值
SELECT CASE GROUPING (job)
WHEN 1 THEN 'ALL JOBS'
ELSE job
END AS job,
SUM (sal)
FROM emp
GROUP BY ROLLUP (job)
ORDER BY SUM (sal);
--grouping多列
SELECT
CASE GROUPING (deptno) WHEN 1 THEN 40 ELSE deptno END AS deptno,
CASE GROUPING (job) WHEN 1 THEN 'ALL JOBS' ELSE job END AS job,
SUM (sal)
FROM emp
GROUP BY ROLLUP (deptno,job)
ORDER BY deptno,job;
--cube與grouping一起使用
SELECT
CASE GROUPING (deptno) WHEN 1 THEN 40 ELSE deptno END AS deptno,
CASE GROUPING (job) WHEN 1 THEN 'ALL JOBS' ELSE job END AS job,
SUM (sal)
FROM emp
GROUP BY cube (deptno,job)
ORDER BY deptno,job;
--使用grouping sets只顯示小計結果
SELECT deptno,job,
SUM (sal)
FROM emp
GROUP BY grouping sets (deptno,job)
ORDER BY deptno,job;
rollup&&cube的更多相关文章
- Oracle分析函数 — sum, rollup, cube, grouping用法
本文通过例子展示sum, rollup, cube, grouping的用法. //首先建score表 create table score( class nvarchar2(20), course ...
- SQL GROUP BY GROUPING SETS,ROLLUP,CUBE(需求举例)
实现按照不同级别分组统计 关于GROUP BY 中的GROUPING SETS,ROLLUP,CUBE 从需求的角度理解会更加容易些. 需求举例: 假如一所学校只有两个系, 每个系有两个专业, 每个专 ...
- GROUP BY中ROLLUP/CUBE/GROUPING/GROUPING SETS使用示例
oracle group by中rollup和cube的区别: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句.CUBE ROLLUP 是用于统计数据的. 实验 ...
- [转]详解Oracle高级分组函数(ROLLUP, CUBE, GROUPING SETS)
原文地址:http://blog.csdn.net/u014558001/article/details/42387929 本文主要讲解 ROLLUP, CUBE, GROUPING SETS的主要用 ...
- 高级聚合函数rollup(),cube(),grouping sets()
rollup(),cube(),grouping sets() 上面这几个函数,是对group by分组功能做的功能扩展. a.rollup() 功能:在原结果基础上追加一行总合计记录 ...
- Oracle Group by+rollup+cube 的应用
首先我们创建一个示例表: Create table test_group (v_name varchar2(4) ,v_size varchar2(4) ,v_color varchar2(4) ,n ...
- PLSQL_基础系列02_分组函数GROUP BY / ROLLUP / CUBE(案例)
2014-11-30 Created By BaoXinjian
- oracle聚合函数及行专列,pivot rollup cube
1.原始数据 --方法-: --以单位分组,计算每类特殊情况的合计以及按照单位的小计数 with a as (SELECT b.szfz, case when tsqk is not null th ...
- SQLSERVER中的ALL、PERCENT、CUBE关键字、ROLLUP关键字和GROUPING函数
SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 USE [tempdb] GO )) GO INSERT INTO [#te ...
随机推荐
- 根据端口号,利用DOS命令杀死进程
比如利用DOS命令找出占用8080端口的程序的PID 然后用DOS命令杀死该进程 kill
- 转载manifold learning一篇
我恨自己不干活儿,不过也没辙. 早晚要学习流形的,今天先转一篇文章,以后找不到就尿了. 我真羡慕数学系的人,╮(╯▽╰)╭. 发信人: Kordan (K&M), 信区: AI标 题: do ...
- 十三个有彩蛋的Linux命令
原文链接: https://my.oschina.net/u/4045573/blog/2986313 一键下载安装配置文本全部命令所需环境 sudo apt-get updategit clon ...
- P4417 [COCI2006-2007#2] STOL
题目描述 米尔科买了一套别墅,他想要邀请尽量多的人和他一起庆祝.他需要一张大的木质矩形桌子来让他和他的嘉宾坐下.每张桌子可容纳的人数等于它的周长(四边长度的总和).米尔科想要买一张即可在他的公寓里放下 ...
- Hashtable 和 HashMap 以及 ConcurrentHashMap
备忘: ConcurrentHashMap与Hashtable的区别: Hashtable中采用的锁机制是一次锁住整个hash表,从而同一时刻只能由一个线程对其进行操作:而ConcurrentHash ...
- C++ STL 常用拷贝和替换算法
C++ STL 常用拷贝和替换算法 copy() 复制 vector<int> vecIntA; vecIntA.push_back(1); vecIntA.push_back(3); v ...
- MT【150】源自斐波那契数列
(清华2017.4.29标准学术能力测试7) 已知数列$\{x_n\}$,其中$x_1=a$,$x_2=b$,$x_{n+1}=x_n+x_{n-1}$($a,b$是正整数),若$2008$为数列中的 ...
- 【比赛】NOIP2017 宝藏
这道题考试的时候就骗了部分分.其实一眼看过去,n范围12,就知道是状压,但是不知道怎么状压,想了5分钟想不出来就枪毙了状压,与AC再见了. 现在写的是状压搜索,其实算是哈希搜索,感觉状压DP理解不了啊 ...
- Xcode一个project生成多个App
网上有很多奇奇怪怪的复杂的方案,其实误导了,方法很简单: 打开项目属性 修改Bundle Identifiler 随便生成了四个App,如下所示:
- Linux内核设计与实现第八周读书笔记
第四章 进程调度 进程在操作系统看来是程序的运行态表现形式. 4.1多任务 多任务操作系统就是能同时并发地交互执行多个进程的操作系统. 多任务操作系统会使多个进程处于堵塞或者睡眠状态.这些任务尽管位于 ...