Oracle分组小计、总计示例(grouping sets的使用)
2012-05-24 09:48
357 查看
1.首先创建一个表
Sql代码
2.录入数据如下:
Sql代码
3.查询全表查看
4.用t.t_dept, t.t_project进行分组查询
Sql代码
结果如下:
5.用t.t_dept, t.t_project,并使用t.t_dept来做小计
Sql代码
结果如下:
6.用t.t_dept, t.t_project,并使用t.t_dept来做小计,并做一次总计
Sql代码
结果如下:
7.使用grouping(字段)
Sql代码
结果如下:
注意: 在存储过程中null不会正确执行 需要改成()
如
Sql代码
Sql代码
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.录入数据如下:
Sql代码
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进行分组查询
Sql代码
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来做小计
Sql代码
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来做小计,并做一次总计
Sql代码
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(字段)
Sql代码
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不会正确执行 需要改成()
如
Sql代码
select grouping(t.t_dept),t.t_dept, t.t_project, t.t_type, sum(t.t_amount) from te t group by grouping sets ((t.t_dept, t.t_project,t.t_type), (t.t_dept,t.t_project),t.t_dept, ());
相关文章推荐
- Oracle分组小计、总计示例(grouping sets的使用)
- Oracle分组扩展函数的使用(主要增加小计及合计金额)
- oracle模糊查询语句使用示例
- Delphi使用ReportMachine制作小计和总计报表
- 使用DATATGRID实现分组小计功能
- 如何在Oracle中用GROUPING SETS分组自定义汇总
- MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK.
- Oracle 正则表达式使用示例
- Oracle expdp/impdp 使用示例
- Oracle 使用RMAN COPY 移动 Datafile 位置 示例
- Delphi使用ReportMachine制作小计和总计报表
- 使用DATATGRID实现分组小计功能
- Oracle 使用RMAN COPY 移动 整个数据库 位置 示例
- 转 Oracle expdp/impdp 使用示例
- 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
- oracle 11g streams 传播进程使用示例
- 在oracle的聚合函数(sum、avg等)中使用group by来分组你的结果
- oracle模糊查询语句使用示例
- Oracle 使用RMAN COPY 移动 Datafile 位置 示例
- ***iOS学习之Table View的简单使用和DEMO示例(共Plain普通+Grouped分组两种)