Oracle分组小计、总计示例(grouping sets的使用)
1.首先创建一个表
- create table TE
- (
- ID VARCHAR2(2),
- T_CODE VARCHAR2(4),
- T_NAME VARCHAR2(4),
- T_AMOUNT INTEGER,
- T_DEPT VARCHAR2(4),
- T_PROJECT VARCHAR2(4),
- T_TYPE VARCHAR2(1)
- )
2.录入数据如下:
- insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)
- values ('1', '1', '1', 10, '总部', '90', '0');
- insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)
- values ('2', '2', '2', 20, '总部', '70', '0');
- insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)
- values ('3', '3', '3', 30, '分1', '60', '0');
- insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)
- values ('4', '4', '4', 40, '分1', '50', '0');
- insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)
- values ('5', '5', '5', 50, '分2', '40', '0');
- insert into te (ID, T_CODE, T_NAME, T_AMOUNT, T_DEPT, T_PROJECT, T_TYPE)
- values ('6', '6', '6', 60, '分2', '30', '0');
3.查询全表查看
- select * from te;

4.用t.t_dept, t.t_project进行分组查询
- select t.t_dept, t.t_project, sum(t.t_amount) from te t
- group by t.t_dept, t.t_project;
结果如下:

5.用t.t_dept, t.t_project,并使用t.t_dept来做小计
- select t.t_dept, t.t_project, sum(t.t_amount) from te t
- group by grouping sets ((t.t_dept, t.t_project), t.t_dept);
结果如下: 
6.用t.t_dept, t.t_project,并使用t.t_dept来做小计,并做一次总计
- select t.t_dept, t.t_project, sum(t.t_amount) from te t
- group by grouping sets ((t.t_dept, t.t_project), t.t_dept, null);
结果如下:

7.使用grouping(字段)
- select grouping(t.t_dept),t.t_dept, t.t_project, sum(t.t_amount) from te t
- group by grouping sets ((t.t_dept, t.t_project), t.t_dept, null);
结果如下:

注意: 在存储过程中null不会正确执行 需要改成()
如
Oracle分组小计、总计示例(grouping sets的使用)的更多相关文章
- Oracle的rollup、cube、grouping sets函数
转载自:https://blog.csdn.net/huang_xw/article/details/6402396 Oracle的group by除了基本用法以外,还有3种扩展用法,分别是rollu ...
- PB gird类型数据窗口 设置分组、分组小计、合计
今天遇到一个需求,gird表格数据如下: 部门 类型 数据 A 类型1 1 A 类型2 2 B 类型1 3 B 类型2 4 合计 10 实际需要显示的结果为: 部门 ...
- 实现对数据进行分组小计并计算合计的实例 asp.net
可以通过数据绑定来实现 通过union all 来实现数据库 SELECT * FROM v3_pay_list2 where ( (ought_date >= '2012-12-06') a ...
- Oracle PL/SQL之GROUP BY GROUPING SETS
[转自] http://blog.csdn.net/t0nsha/article/details/6538838 使用GROUP BY GROUPING SETS相当于把需要GROUP的集合用UNIO ...
- Oracle 使用小计(4)
1.oracle字符串分割函数split )定义split_type类型: CREATE OR REPLACE TYPE split_type IS TABLE OF VARCHAR2 (4000) ...
- Oracle 使用小计(3)
1.出错处理 ORA-00911: invalid character. 这是因为在语句末尾加上了";"的缘故,去掉";"SQL就可以执行了~ (这与SQL ...
- Oracle 使用小计(2)
1.时间转换 1.1 字符串转时间 今天需要写SQL语句更新数据库的时间,按照SQL Server的习惯写成 UPDATE TABLE A ’ WHERE ORDER_ID = ‘A12345678’ ...
- Oracle 使用小计
1.Sequence 1.1 什么是Sequence? Sequence是oracle提供的一个对象,用于产生自增的主键.这与sql server的identity是类似的. 从数学的角度来说,其为一 ...
- 使用EF操作Oracle数据库小计
1.建表 CREATE TABLE item.ORDERS( ORDERID ) CONSTRAINT PK_ORDERS PRIMARY KEY, ORDERNO ), STOREID ), STO ...
随机推荐
- NLog简单例子
引用 <?xml version="1.0" encoding="utf-8"?> <packages> <package id= ...
- [转] react-router4 + webpack Code Splitting
项目升级为react-router4后,就尝试着根据官方文档进行代码分割.https://reacttraining.com/react-router/web/guides/code-splittin ...
- ASP.NET Core 2.0 新功能汇总
前言 ASP.NET Core 的变化和发展速度是飞快的,当你发现你还没有掌握 ASP.NET Core 1.0 的时候, 2.0 已经快要发布了,目前 2.0 处于 Preview 1 版本,意味着 ...
- zabbix邮箱报警设置&问题汇总
zabbix邮件报警部署! Zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常,通过查看Zabbix监控服务器,可以了解服务器的运行状态是否正常,运维人员不会时 ...
- BZOJ5291/洛谷P4458/LOJ#2512 [Bjoi2018]链上二次求和 线段树
原文链接http://www.cnblogs.com/zhouzhendong/p/9031130.html 题目传送门 - LOJ#2512 题目传送门 - 洛谷P4458 题目传送门 - BZOJ ...
- .net core cookie登录和session的 DataProtectionProvider 加入 redis
string redisConnectionString = Configuration.GetSection("Storage:Redis").GetValue<strin ...
- java的conllections.sort排序
https://www.cnblogs.com/yw0219/p/7222108.html?utm_source=itdadao&utm_medium=referral
- word,excel,ppt在线预览功能
我们在开发web项目时,尤其类似oa功能时总会遇到上传附件并在线预览的功能,发现一款api比较好使,下面简单介绍一下. 微软官网本身提供了在线预览的API 首先将要预览的文档转成.docx,.xlsx ...
- Linux常用命令行补充——持续更新
1.查看文件夹大小 =>ls -lht 路径 ls -lht /opt/jars 2.查看文件大小 =>du -sh / du -sh /opt/jars/calllog.csv 3.编辑 ...
- pacman 命令
安装 pacman -S 删除 pacman -R 移除已安装不需要软件包 pacman -Rs 删除一个包,所有依赖 pacman -Rsc 升级包 pacman -Syu 查询包数据库 ...