oracle高階函式(待整理)

2021-07-22 02:46:27 字數 3856 閱讀 8629

create table dep(

deptno varchar2(50) primary key,

deptname varchar2(50)

);insert into dep values ('1','人事部');

insert into dep values ('2','技術部');

insert into dep values ('3','採購部');

commit;

create table dep_emp(

deptno varchar2(50),

empno varchar2(50),

ename varchar2(50),

sal number(10,2)

);alter table dep_emp add constraint deptno_fk foreign key (deptno) references dep(deptno) on delete cascade;

insert into dep_emp values ('1','011','張三',3000);

insert into dep_emp values ('1','012','李四',3400);

insert into dep_emp values ('2','021','王五',4300);

insert into dep_emp values ('2','021','張三',3200);

insert into dep_emp values ('3','031','李四',3400);

insert into dep_emp values ('3','032','王五',2300);

commit;

--select * from user_tables;

--select * from dep;

--select * from dep_emp;

--顯示各部門員工的工資,並附帶顯示該部分的最高工資。

select e.deptno,

e.empno,

e.ename,

e.sal,

last_value(e.sal) 

over(partition by e.deptno 

order by e.sal rows 

--unbounded preceding and unbouned following針對當前所有記錄的前一條、後一條記錄,也就是表中的所有記錄

--unbounded:不受控制的,無限的

--preceding:在...之前

--following:在...之後

between unbounded preceding and unbounded following) max_sal

from dep_emp e;

--按照deptno分組,然後計算每組值的總和

select empno,

ename,

deptno,

sal,

sum(sal) over(partition by deptno order by ename) max_sal

from dep_emp;

--對各部門進行分組,並附帶顯示第一行至當前行的彙總

select empno,

ename,

deptno,

sal,

--注意rows between unbounded preceding and current row  是指第一行至當前行的彙總

sum(sal) over(partition by deptno 

order by ename 

rows between unbounded preceding and current row) max_sal

from dep_emp;

--當前行至最後一行的彙總

select empno,

ename,

deptno,

sal,

--注意rows between current row and unbounded following 指當前行到最後一行的彙總

sum(sal) over(partition by deptno 

order by ename 

rows between current row and unbounded following) max_sal

from dep_emp;

--當前行的上一行(rownum-1)到當前行的彙總

select empno,

ename,

deptno,

sal,

--注意rows between 1 preceding and current row 是指當前行的上一行(rownum-1)到當前行的彙總 

sum(sal) over(partition by deptno 

order by ename rows 

between 1 preceding and current row) max_sal

from dep_emp;

--當前行的上一行(rownum-1)到當前行的下輛行(rownum+2)的彙總

select empno,

ename,

deptno,

sal,

--注意rows between 1 preceding and 1 following 是指當前行的上一行(rownum-1)到當前行的下輛行(rownum+2)的彙總

sum(sal) over(partition by deptno 

order by ename 

rows between 1 preceding and 2 following) max_sal

from dep_emp;

select d.deptno,sum(d.sal),grouping(d.deptno) from dep_emp d group by cube(d.deptno);  --分組後還有對於薪水的總體總計

select d.deptno,d.empno,sum(d.sal),grouping(d.empno) from dep_emp d group by rollup(d.deptno,d.empno);  --分組後每組的總計和總體的總計

select d.deptno,sum(d.sal),grouping(d.deptno) from dep_emp d group by d.deptno;          --普通分組  

--cube,總計顯示在上面(過於深奧,比rollup更細)

select d.deptno,sum(d.sal),grouping(d.deptno) from dep_emp d group by cube(d.deptno);  --分組後還有對於薪水的總體總計

select d.deptno,d.empno,sum(d.sal),grouping(d.empno) from dep_emp d group by cube(d.deptno,d.empno);  --分組後每組的總計和總體的總計

--grouping用作小計(次數),可以看做樹型的層級

--partition by 暫看成分組(不是很理解)

--ratio_to_report(所佔百分比)

select dense_rank()over(order by d.deptno desc),ratio_to_report(d.deptno)over() from dep_emp d;  --連續排名

select rank()over( order by d.deptno desc),ratio_to_report(d.deptno)over() from dep_emp d;   --非連續排名

待整理 平台

re resource element 資源元素,或資源粒子,是lte物理資源中最小的資源單位 在時域上占用1個ofdm symbol 1 14 ms 頻域上為1個子載波 15khz 平常所說的符號,即調製後的資料符號,是對映到re上的,與ofdm 符號是兩個不同的概念 rb resource bl...

演算法 待整理

知道的所有排序,及其時空複雜度和是否穩定 排序為什麼分穩定不穩定?判斷單向鍊錶中是否有環 介紹陣列 鍊錶,以及對比一下 不用臨時變數怎麼實現 swap a,b 用加法或者異或都可以 簡述排序演算法 快排,partion函式的原理,堆排 不穩定 歸併排序,基數排序。手寫 給出乙個uiview,列印其所...

筆記待整理

關於靜態屬性和方法的繼承問題 對於非靜態屬性,子類會繼承下來並且可以對其操作 但是一旦子類有了同名屬性時,父類的屬性會被隱藏,這時操作的就是子類的那個和父類同名的屬性。所以在被隱藏時要看使用時要看是父類的引用指向物件還是子類的引用指向物件。是誰的引用就呼叫誰的屬性。對於靜態屬性,子類繼承並使用,但是...