日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
關(guān)于ORACLEOLAP函數(shù)語法的總結(jié)

Oracle數(shù)據(jù)庫OLAP函數(shù)用途很廣泛,本文主要從以下幾個方面來對OLAP函數(shù)語法進(jìn)行總結(jié),以方便我們的理解。

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的荊門網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

OLAP函數(shù)語法四個部分:

1、function本身用于對窗口中的數(shù)據(jù)進(jìn)行操作;

2、partitioning clause 用于將結(jié)果集分區(qū);

3、order by clause 用于對分區(qū)中的數(shù)據(jù)進(jìn)行排序;

4、windowing clause 用于定義function在其上操作的行的集合,即function所影響的范圍。

一、order by對窗口的影響

不含order by的:

 
 
 
  1. SQL> select deptno,sal,sum(sal) over()  
  2.  
  3. from emp; 

不含order by時,默認(rèn)的窗口是從結(jié)果集的***行直到末尾。

含order by的:

 
 
 
  1. SQL> select deptno,sal,  
  2.  
  3. sum(sal) over(order by deptno) as sumsal  
  4.  
  5. from emp; 

當(dāng)含有order by時,默認(rèn)的窗口是從***行直到當(dāng)前分組的***一行。

二、用于排列的函數(shù)

 
 
 
  1. SQL> select empno, deptno, sal,  
  2.  
  3. rank() over  
  4.  
  5. (partition by deptno order by sal desc nulls last) as rank,  
  6.  
  7. dense_rank() over  
  8.  
  9. (partition by deptno order by sal desc nulls last) as dense_rank,  
  10.  
  11. row_number() over  
  12.  
  13. (partition by deptno order by sal desc nulls last) as row_number  
  14.  
  15. from  emp; 

三、用于合計的函數(shù)

 
 
 
  1. SQL> select deptno,sal,  
  2.  
  3. sum(sal) over (partition by deptno) as sumsal,  
  4.  
  5. avg(sal) over (partition by deptno) as avgsal,  
  6.  
  7. count(*) over (partition by deptno) as count,  
  8.  
  9. max(sal) over (partition by deptno) as maxsal  
  10.  
  11. from emp; 

四、開窗語句

1、rows窗口: "rows 5 preceding"    適用于任何類型而且可以order by多列。

 
 
 
  1. SQL> select deptno,ename,sal,  
  2.  
  3. sum(sal) over (order by deptno rows 2 preceding) sumsal  
  4.  
  5. from emp; 

rows 2 preceding:將當(dāng)前行和它前面的兩行劃為一個窗口,因此sum函數(shù)就作 用在這三行上面。

 
 
 
  1. SQL> select deptno,ename,sal,  
  2.  
  3. sum(sal) over  
  4.  
  5. (partition by deptno order by ename rows 2 preceding) sumsal  
  6.  
  7. from emp  
  8.  
  9. order by deptno,ename; 

加了partiton by分區(qū)后之后,rows 2 preceding(窗口)只在當(dāng)前分區(qū)內(nèi)生效,不會影響分區(qū)之外的行。

 
 
 
  1. SQL> select ename,sal,hiredate,  
  2.  
  3. first_value(ename)over  
  4.  
  5. (order by hiredate asc rows 5 preceding) first_ename,  
  6.  
  7. first_value(hiredate) over  
  8.  
  9. (order by hiredate asc rows 5 preceding) first_hiredate  
  10.  
  11. from emp  
  12.  
  13. order by hiredate asc; 

order by hiredate asc rows 5 preceding: order by之后,取當(dāng)前行的前5行+當(dāng)前行作為窗口(共6行)。

2、"range unbounded preceding"range unbounded preceding會把當(dāng)前行之前的所有行都包含進(jìn)來,但當(dāng)partition by時:

 
 
 
  1. SQL> select deptno,ename,sal,  
  2.  
  3. sum(sal) over  
  4.  
  5. (partition by deptno order by deptno range unbounded preceding) sumsal  
  6.  
  7. from emp;  
  8.  
  9. SQL> select deptno,ename,sal,  
  10.  
  11. sum(sal) over  
  12.  
  13. (order by deptno range unbounded preceding) sumsal  
  14.  
  15. from  emp; 

這SQL句子和下面這SQL是等價的:

 
 
 
  1. select deptno,ename,sal,  
  2.  
  3. sum(sal) over (order by deptno) sumsal  
  4.  
  5. from  emp; 

因為order by的默認(rèn)窗口總是從結(jié)果集的***行開始到它分組的***一行。

而partiton by的默認(rèn)窗口總是從分區(qū)的***行開始。

3、range窗口:

"range 100 preceding"這個子句只適用于number和date,而且只能order by一列。

如果over()里asc排列,意思是[number-100,number]這樣一個閉區(qū)間是它的窗口。

如果over()里desc排列,意思是[number,number+100]這樣一個閉區(qū)間是它的窗口。

4、窗口總結(jié):

1、unbounded preceding:從當(dāng)前分區(qū)的***行開始,到當(dāng)前行結(jié)束。

2、current row:從當(dāng)前行開始,也結(jié)束于當(dāng)前行。

3、[numeric expression] preceding:對于rows來說從當(dāng)前行之前的第[numeric expression]行開始,到當(dāng)前行結(jié)束。對range來說從小于數(shù)值表達(dá)式的值開始,到當(dāng)前行結(jié)束。

4、[numeric expression] following:與[numeric expression] preceding相反。

關(guān)于Oracle數(shù)據(jù)庫OLAP函數(shù)語法的總結(jié)就介紹到這里,謝謝大家!


分享題目:關(guān)于ORACLEOLAP函數(shù)語法的總結(jié)
網(wǎng)頁URL:http://www.5511xx.com/article/dhsijes.html