ITPub博客

首页 > 数据库 > Oracle > rollup,cube,grouping

rollup,cube,grouping

原创 Oracle 作者:cdbdp 时间:2015-01-04 18:17:15 0 删除 编辑
drop table test01 purge;
create table test01
(
emp_no number primary key,  --雇员号
dep_no number,              --部门号
sal number                  --薪水
);
--初始化四个雇员
insert into test01 values(1,10,3000);
insert into test01 values(2,10,2000);
insert into test01 values(3,20,2200);
insert into test01 values(4,30,2500);
commit;


--1,按部门汇总薪水,并显示总值
select dep_no, sum(sal) from test01 group by rollup(dep_no);
-- ----  -------
10    5000
20    2200
30    2500
      9700
-------------------------------------


select dep_no, sum(sal) from test01 group by cube(dep_no);
-- ----  -------
      9700
10    5000
20    2200
30    2500
-------------------------------------


--2,按雇员显示薪水,并显示部门汇总值
select emp_no,dep_no, sum(sal) from test01 group by rollup(dep_no, emp_no);
-- ----  -------
1    10    3000
2    10    2000
     10    5000
3    20    2200
     20    2200
4    30    2500
     30    2500
           9700
-------------------------------------


select emp_no,dep_no, sum(sal) from test01 group by cube(dep_no, emp_no);


-- ----  -------
           9700
1          3000
2          2000
3          2200
4          2500
     10    5000
1    10    3000
2    10    2000
     20    2200
3    20    2200
     30    2500
4    30    2500
-------------------------------------


--3,显示汇总值标志grouping
select emp_no, dep_no, grouping(emp_no),grouping(dep_no), sum(sal) from test01 group by rollup(dep_no,emp_no);
--  ---   --   --   ------
1    10    0    0    3000
2    10    0    0    2000
     10    1    0    5000
3    20    0    0    2200
     20    1    0    2200
4    30    0    0    2500
     30    1    0    2500
           1    1    9700
-------------------------------------

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23382569/viewspace-1389772/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: index
请登录后发表评论 登录
全部评论

注册时间:2010-02-22

  • 博文量
    51
  • 访问量
    105409