溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Oracle連續(xù)相同數(shù)據(jù)的統(tǒng)計

發(fā)布時間:2020-09-28 06:56:25 來源:腳本之家 閱讀:155 作者:℡六兮 欄目:數(shù)據(jù)庫

有些事情始終是需要堅持下去的。。。

今天復(fù)習(xí)一下之前用到的連續(xù)相同數(shù)據(jù)的統(tǒng)計。

首先,創(chuàng)建一個簡單的測試表,這里過程就略過了,直接上表(真的是以簡單為主,哈哈…)

Oracle連續(xù)相同數(shù)據(jù)的統(tǒng)計

第一種寫法row_number():

SELECT val,COUNT(*) FROM
(SELECT ID,val,
row_number() OVER(ORDER BY ID)-row_number() OVER(PARTITION BY val ORDER BY ID) x
FROM LCY ) GROUP BY val,x ORDER BY MIN(ID);

第二種rank()

 SELECT val,COUNT(*) FROM
(SELECT ID,val,
rank() OVER(ORDER BY ID)-rank() OVER(PARTITION BY val ORDER BY ID) x
FROM LCY) GROUP BY val,x ORDER BY MIN(ID);

第三種dense_rank()

SELECT val,COUNT(*) FROM
(SELECT ID,val,
dense_rank() OVER(ORDER BY ID)-dense_rank() OVER(PARTITION BY val ORDER BY ID) x
FROM LCY )GROUP BY val,x ORDER BY MIN(ID);

結(jié)果:

Oracle連續(xù)相同數(shù)據(jù)的統(tǒng)計

三者在這里的用法只是換湯不換藥,但是在其他的需求里還是有區(qū)別的,比如成績排名。

本章涉及到的知識點(diǎn)是分析函數(shù)、聚合函數(shù),除此之外還有數(shù)據(jù)分析函數(shù)和統(tǒng)計求和函數(shù)。

簡單介紹一下:

聚合函數(shù)

  • SUM :該函數(shù)計算組中表達(dá)式的累積和
  • MIN :在一個組中的數(shù)據(jù)窗口中查找表達(dá)式的最小值
  • MAX :在一個組中的數(shù)據(jù)窗口中查找表達(dá)式的最大值
  • AVG :用于計算一個組和數(shù)據(jù)窗口內(nèi)表達(dá)式的平均值。
  • COUNT :對一組內(nèi)發(fā)生的事情進(jìn)行累積計數(shù)

分析函數(shù)

  • RANK :根據(jù)ORDER BY子句中表達(dá)式的值,從查詢返回的每一行,計算它們與其它行的相對位置
  • DENSE_RANK :根據(jù)ORDER BY子句中表達(dá)式的值,從查詢返回的每一行,計算它們與其它行的相對位置
  • FIRST :從DENSE_RANK返回的集合中取出排在最前面的一個值的行
  • LAST :從DENSE_RANK返回的集合中取出排在最后面的一個值的行
  • FIRST_VALUE :返回組中數(shù)據(jù)窗口的第一個值
  • LAST_VALUE :返回組中數(shù)據(jù)窗口的最后一個值。
  • LAG :可以訪問結(jié)果集中的其它行而不用進(jìn)行自連接
  • LEAD :LEAD與LAG相反,LEAD可以訪問組中當(dāng)前行之后的行
  • ROW_NUMBER:返回有序組中一行的偏移量,從而可用于按特定標(biāo)準(zhǔn)排序的行號

數(shù)據(jù)分析函數(shù)

  • STDDEV :計算當(dāng)前行關(guān)于組的標(biāo)準(zhǔn)偏離
  • STDDEV_POP:該函數(shù)計算總體標(biāo)準(zhǔn)偏離,并返回總體變量的平方根
  • STDDEV_SAMP:該函數(shù)計算累積樣本標(biāo)準(zhǔn)偏離,并返回總體變量的平方根
  • VAR_POP :該函數(shù)返回非空集合的總體變量(忽略null)
  • VAR_SAMP :該函數(shù)返回非空集合的樣本變量(忽略null)
  • VARIANCE :如果表達(dá)式中行數(shù)為1,則返回0,如果表達(dá)式中行數(shù)大于1,則返回VAR_SAMP
  • COVAR_POP :返回一對表達(dá)式的總體協(xié)方差
  • COVAR_SAMP:返回一對表達(dá)式的樣本協(xié)方差
  • CORR :返回一對表達(dá)式的相關(guān)系數(shù)
  • CUME_DIST :計算一行在組中的相對位置
  • NTILE :將一個組分為"表達(dá)式"的散列表示
  • PERCENT_RANK:和CUME_DIST(累積分配)函數(shù)類似
  • PERCENTILE_DISC:返回一個與輸入的分布百分比值相對應(yīng)的數(shù)據(jù)值
  • PERCENTILE_CONT:返回一個與輸入的分布百分比值相對應(yīng)的數(shù)據(jù)值
  • RATIO_TO_REPORT:該函數(shù)計算expression/(sum(expression))的值,它給出相對于總數(shù)的百分比
  • REGR_ (Linear Regression) Functions:這些線性回歸函數(shù)適合最小二乘法回歸線,有9個不同的回歸函數(shù)可使用

統(tǒng)計求和函數(shù)

CUBE :按照OLAP的CUBE方式進(jìn)行數(shù)據(jù)統(tǒng)計,即各個維度均需統(tǒng)計

下一篇文章介紹三者的區(qū)別,還有其他一些常用的分析函數(shù)和聚合函數(shù)。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對億速云的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI