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 ...
随机推荐
- linux下怎么修改grub.cfg
一.grub2的启动配置文件grub.cfggrub2的启动配置文件grub.cfg是/boot/grub/grub.cfg,而不是以前的memu.lst.如果你是多系统,有Ubuntu和window ...
- Day22-Django之Form组件验证
1. Django里面的Form专门用来做验证. 用Form创建一个类,把用户发来的数据放到request.POST里面发给这个类,这个类会帮忙做验证. 返回3个结果:是否验证成功了,所有的正确信息, ...
- git 复位出现If no other git process is currently running, this probably means a git process crashed in this repo
复位到A节点的时候点了取消(终止),又去复位另外个节点,结果每次不管复位哪个都会报这个错误 fatal: Unable to create 'XXXXXXXXX' : File exists. If ...
- 解题:POI 2015 PUS
题面 还以为是差分约束,原来拓扑排序也能解决这样的问题=.= 类似差分约束的建图方式,我们把大小关系看做有向边.这样一来图上是不允许存在环的,于是我们可以做拓扑排序.然后问题来了,边数非常大,根本建不 ...
- composer install 出现的问题
今天克隆代码之后,在composer install 的时候出现了一些问题,在此记录一下. 错误代码如下: [root@localhost MarketingCenter]# composer ins ...
- BZOJ1053:反素数(数学)
题目链接 对于任意的正整数\(x\),记其约数的个数为\(g(x)\).现在定义反素数:对于\(0<i<x\),都有\(g(x)>g(i)\),那么就称x为反素数. 现在给定一个数N ...
- bzoj 2809
2809: [Apio2012]dispatching Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 4519 Solved: 2329[Submi ...
- [大数据]-Fscrawler导入文件(txt,html,pdf,worf...)到Elasticsearch5.3.1并配置同义词过滤
fscrawler是ES的一个文件导入插件,只需要简单的配置就可以实现将本地文件系统的文件导入到ES中进行检索,同时支持丰富的文件格式(txt.pdf,html,word...)等等.下面详细介绍下f ...
- P3807 【模板】卢卡斯定理
P3807 [模板]卢卡斯定理 求 \(C_{m + n}^{m} \% p\) ( \(1\le n,m,p\le 10^5\) ) 错误日志: 数组开小(哇啊啊啊洼地hi阿偶我姑父阿贺佛奥UFO爱 ...
- Oracle的基本语法,存储函数及触发器
1.PL/SQL PL/SQL是Oracle对 ql语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句,使SQL语言具有过程处理能力.把 SQL 语言的数据操纵能 力与过程语言的数据 ...