【Oracle】rollup函数
当我们在做报表统计的时候,很多时候需要用到‘合计’这个功能,比如我们想得到如下格式的报表:
这张表是按照deptno分组,然后按照deptno分组合计。rollup函数可以完美的解决这个问题。
1.建立一张t表:
create table T ( empno NUMBER(4), ename VARCHAR2(10), job VARCHAR2(9), sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) );
2.插入数据:
insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7844, 'TURNER', 'SALESMAN', 1500.00, 0.00, 30); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7499, 'ALLEN', 'SALESMAN', 1600.00, 300.00, 30); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7521, 'WARD', 'SALESMAN', 1250.00, 500.00, 30); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7566, 'JONES', 'MANAGER', 2975.00, 100.00, 20); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7654, 'MARTIN', 'SALESMAN', 1250.00, 1400.00, 30); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7698, 'BLAKE', 'MANAGER', 2850.00, 100.00, 30); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7782, 'CLARK', 'MANAGER', 2450.00, 100.00, 10); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7788, 'SCOTT', 'ANALYST', 3000.00, 100.00, 20); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7839, 'KING', 'PRESIDENT', 5000.00, 100.00, 10); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7876, 'ADAMS', 'CLERK', 1100.00, 100.00, 20); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7900, 'JAMES', 'CLERK', 950.00, 100.00, 30); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7902, 'FORD', 'ANALYST', 3000.00, 100.00, 20); insert into t (EMPNO, ENAME, JOB, SAL, COMM, DEPTNO) values (7934, 'MILLER', 'CLERK', 1300.00, 100.00, 10); commit;
3.使用rollup函数
select empno, ename, sum(sal) as sal, sum(comm) as comm, deptno from t group by rollup(deptno, (empno, ename)) having grouping(deptno) = 0;
The End!
【Oracle】rollup函数的更多相关文章
- ORACLE rollup函数
rollup函数应用场景: 主要使用在 分组中,将每个分组求汇总值(就是小计),最后再讲所有值(除去小计)求和(就是合计) 当然,使用union 也可以达到同样的效果.先将需要查询的分组查出来,再un ...
- [转]【ROLLUP】Oracle分组函数之ROLLUP魅力
原创:http://blog.itpub.net/519536/viewspace-610995 本文通过演示给出Oracle ROLLUP分组函数的用法,体验一下Oracle在统计查询领域中的函数魅 ...
- Mysql,Oracle使用rollup函数完成行列统计
时间 2014-02-25 00:05:38 ITeye-博客 原文 http://53873039oycg.iteye.com/blog/2021445 主题 MySQLOracle数据库 昨天 ...
- Oracle分组函数之ROLLUP用法
rollup函数 本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as s ...
- Oracle分组函数cube VS rollup
分析函数cube和rollup魅力首先请看下面例子1)创建表create table group_test (group_id int, job varchar2(10), name varchar2 ...
- Oracle分析函数——函数列表
--------------聚合函数 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算 ...
- 【转】【CUBE】Oracle分组函数之CUBE魅力
http://blog.itpub.net/519536/viewspace-610997/ Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手. 关于ROLLUP的查 ...
- Oracle分组函数之CUBE魅力
Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手. 关于ROLLUP的查询统计功能请参考文章<Oracle分组函数之ROLLUP魅力>(http://www ...
- oracle 高级函数2
原 oracle 高级函数 2017年08月17日 16:44:19 阅读数:1731 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013278 ...
随机推荐
- fork()调用使子进程先于父进程被调度
由于内核使用写时复制机制,fork之后父子进程是共享页表描述符的,如果让父进程先执行,那么有很大几率父进程会修改共享页表指向的数据,那么内核此时必须给父进程分配并复制新的页表供父进程修改使用,那么如果 ...
- hdu 5174 Ferries Wheel
摩天轮是一个环,周围围绕着一些缆车.每个缆车按顺序编号为1,2,3...K-1,K1,2,3...K−1,K而且每个缆车也拥有一个唯一的值且保证A[i-1] < A[i] < A[i+1] ...
- 06007_redis数据存储类型——hash
1.概述 (1)Redis中的Hash类型可以看成具有String Key和String Value的map容器.所以该类型非常适合于存储值对象的信息,如Username.Password和Age等: ...
- seleniumd对象的操作方法,属性,keys
这是通过find方法找到的页面元素,此对象提供了多种方法,让我们可以与页面元素进行交互,例如点击.清空. 目录: 1. 方法 2. 属性 3. keys 方法 clear()清空 如果当前元素中有文本 ...
- Android音乐、视频类APP常用控件:DraggablePanel(1)
Android音乐.视频类APP常用控件:DraggablePanel(1) Android的音乐视频类APP开发中,常涉及到用户拖曳视频.音乐播放器产生一定交互响应的设计需求,最典型的以You ...
- nyoj_66_分数拆分_201312012122
分数拆分 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 现在输入一个正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y. 输 ...
- kendo Grid的toolbar自定义
由于这个toolbar官方进增加了create,save还有一个是_____ 所以想要自定义话就需要使用 下面的代码(这个是MVVM模式) data-toolbar='[{ template: Ken ...
- linux系统读写缓存
1. 操作系统缓存 在linux世界里,一切可读写设备都可看作是文件.文件cache设计的好坏直接影响着文件系统和磁盘的性能.最直观的是使用free命令看到的cached列. 这里面的cached列 ...
- Source Insight 与 Source Navigator ,Understand ,Crystal FLOW 源代码阅读工具
http://www.sourceinsight.com/update.html http://www.oschina.net/p/sourcenavigator/ http://www.cnblog ...
- 将XML文件转化成NSData对象
NSData *xmlData = [[NSData alloc]initWithContentsOfFile:[NSString stringWithFormat:@"%@/People. ...