【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 ...
随机推荐
- PHP中的几个随机数生成函数
PHP中的几个随机数生成函数 rand() 基于 libc 的随机种子发生器 mt_rand() 基于 Mersenne Twister 算法返回随机整数.它可以产生随机数值的平均速度比 libc 提 ...
- Django REST framework - 视图
目录 Django REST framework 视图GenericAPIView GenericAPIView 例子 属性 混入 具体视图类 自定义基类 Django REST framework ...
- 【7】Django网页视图模板处理
天下难事必作於易.天下大事必作於细.是以圣人终不为大,故能成其大 --老子<道德经> 本节内容 HTML页面的渲染 使用页面模板 异常处理 超链接路径处理 路由命名空间 1. HTML页面 ...
- [置顶]
Git学习总结(1)——Git使用详细教程
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...
- 使用MySQLMigrationToolkit快速将Oracle数据导入MySQL
使用MySQL Migration Toolkit快速将Oracle数据导入MySQL 上来先说点废话 本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoD ...
- Windows读取NXP MiFare Ultralight C类型NFC卡片的信息
1,读取 我们需要外接一个NFC Reader让Windows可以读取NFC卡片的内容. 因为特殊原因,我们选择了Sony rc-s380 NFC Reader.相关介绍 我们需要下载并安装NFC P ...
- percona-toolkit使用教程
1:慢日志查询 [root@test_dx modify]# wget percona.com/get/pt-query-digest [root@test_dx modify]# file pt-q ...
- java web解决表单重复提交
首先我们在讨论如何解决表单重复提交问题之前先来解决三个问题:1.什么叫表单重复提交?2.什么情况下会出现表单重复提交?3.什么情况需要避免表单重复提交? 什么叫表单提交问题,说白了,就是同一份信息,重 ...
- VS2010: 远程访问IIS Express
可以远程访问IIS Express的意义在于:1. 可以从其它设备上Debug项目,这点对于手持设备等不是很容易用虚拟机虚拟的设备尤为重要.2. 可以避免过早配置IIS 7(不一定是好事. ...
- 027依据前序遍历和中序遍历,重建二叉树(keep it up)
剑指offer中题目:http://ac.jobdu.com/problem.php?pid=1385 题目描写叙述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.如果输入的前序遍历和中 ...