Oracle的group by分組,子句增強

開篇還是想吐槽一下這個Oracle的group by分組,沒有MySQL那麼好用,可能是MySQL用習慣了 :- (

表以及數據:

create table employees
(
  employee_id number(8) not null,         --員工id
  manager_id number(6),                   --經理id
  salary number(8,2),                     --工資
  employees_name varchar2(25) not null,   --員工名字
  entry_date date not null                --入職時間
);


insert into employees values (1000,100,10000,'jack1',sysdate -365);
insert into employees values (1001,101,10000,'jack2',sysdate -200);
insert into employees values (1002,101,8000,'jack3',sysdate -100);
insert into employees values (1003,102,8500,'jack4',sysdate -150);
insert into employees values (1004,102,8000,'jack5',sysdate -100);
insert into employees values (1005,102,8000,'jack6',sysdate -100);
insert into employees values (1006,100,8000,'jack7',sysdate -100);
insert into employees values (100,null,20000,'jack8',sysdate -800);

1.普通分組

select employees_name, manager_id ,sum(salary) from employees where manager_id = 100 group by employees_name,manager_id;

在這裏插入圖片描述

2.rollup分組

select employees_name, manager_id ,sum(salary) from employees where manager_id = 100
 group by rollup(employees_name,manager_id);

在這裏插入圖片描述

3.cube分組

select employees_name, manager_id ,sum(salary) from employees where manager_id = 100
 group by cube(employees_name,manager_id);

在這裏插入圖片描述

4.grouping查詢是否分組,顯示 0 表示經過分組,顯示 1 表示未經過分組

select employees_name, manager_id ,sum(salary),grouping(employees_name) gp_e_n,grouping(manager_id) gp_m_i 
from employees where manager_id = 100 group by cube(employees_name,manager_id);

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章