日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle计算最大与最小之间数,oracle 分析函数

發(fā)布時間:2023/12/4 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle计算最大与最小之间数,oracle 分析函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

oracle分析函數(shù),主要五大類

一等級函數(shù):row_number();DENSE_RANK();Rank()

主要就是遇到相同排名時的區(qū)別,

查詢各部門職位級別最高的2個人

select * from (select rybm,rymc,zzjgid,zwdj,row_number() over(partition by zzjgid order by zwjb desc ) rw? from t_rlzy_ry) where rw<2

二開窗(windowing)函數(shù):用于計算不同的累計,如SUM,COUNT,AVG,MIN,MAX等,作用于數(shù)據(jù)的一個窗口上

1. order by 加則是當(dāng)前分區(qū)的第一行到當(dāng)前行的和,不加order by 則是當(dāng)前分區(qū)的所有行的和

select zzjgid,rymc,df,sum(df) over(partition by zzjgid order by df) from t_rlzy_ry where df>0

2.rows窗口: "rows 5 preceding" 適用于任何類型而且可以order by多列。當(dāng)前行之前第五行開始到當(dāng)前行,一共6行

3.range窗口: "range 5 preceding" 適用于number和date類型,order by一列。當(dāng)前行之前所有行的值大于當(dāng)前行的值減去5的行

4.以下三條語句等效

over (order by salary rows between unbounded preceding and unbounded following)

over (order by salary range between unbounded preceding and unbounded following)

over (partition by null)

5.over (order by salary range between unbounded preceding and current row) 第一行到當(dāng)前行

6.NULLS LAST/FIRST? 控制排列順序,最后或者最前

7.keep()取一個最大和最小值

select zzjgid,min(df) keep(dense_rank first order by df ) first,max(df) keep(dense_rank last order by df ) last from t_rlzy_ry group by zzjgid

8.ntile(N)將結(jié)果平均分成N等分

select zzjgid,rymc,df,ntile(5) over( order by df )? from t_rlzy_ry

9.first_value/last_value

SELECT ZZJGID,FIRST_value(sum(df) ) over (order by zzjgid rows between 1 preceding and 1 following ) pre,

sum(df) cur,

last_value(sum(df) ) over (order by zzjgid rows between 1 preceding and 1 following ) next

from t_rlzy_ry? group by zzjgid

10.CUME_DIST() OVER([partition_clause] order_by_clause) 返回該行在分組序列中的相對位置,返回值介于0到1之間

11.PERCENT_RANK() OVER([partition_clause] order_by_clause) 與CUME_DIST類似,本函數(shù)返回分組序列中各行在分組序列的相對位置。其返回值也是介于0到1之間,不過其起始值始終為0而終結(jié)值始終為1

三制表(reporting)函數(shù):與開窗函數(shù)同名,作用于一個分區(qū)或一組上的所有列

計算每條記錄在其對應(yīng)記錄集或其子集中所占的比例。

select zzjgid,rymc, ratio_to_report(df) over (partition by zzjgid) from? t_rlzy_ry

四LAG,LEAD函數(shù):這類函數(shù)允許在結(jié)果集中向前或向后檢索值,為了避免數(shù)據(jù)的自連接,它們是非常用用的.

比較相鄰記錄

SELECT ZZJGID,lag(sum(df) ,2) over (order by zzjgid? ) pre,sum(df) cur ?from t_rlzy_ry? group by zzjgid --當(dāng)前記錄的前第二條

SELECT ZZJGID,LEAD(sum(df) ,2) over (order by zzjgid? ) pre,sum(df) cur ?from t_rlzy_ry? group by zzjgid--當(dāng)前記錄的后第二條

五VAR_POP,VAR_SAMP,STDEV_POPE及線性的衰減函數(shù):計算任何未排序分區(qū)的統(tǒng)計值

1.STDDEV ([distinct|all] col) OVER (analytic_clause)返回列的標(biāo)準(zhǔn)偏差。

2.STDDEV_POP(col) OVER (analytic_clause)返回該分組序列總體標(biāo)準(zhǔn)偏差

3.VAR_POP(col) OVER (analytic_clause)返回分組序列的總體方差,VAR_POP進(jìn)行如下計算:(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / COUNT(expr)

4.VAR_SAMP(col) OVER (analytic_clause)與上類似,該函數(shù)返回分組序列的樣本方差,,其計算公式為:(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / (COUNT(expr) - 1)

5.VARIANCE(col) OVER (analytic_clause)該函數(shù)返回分組序列方差,Oracle計算該變量如下:

如果表達(dá)式中行數(shù)為1,則返回0,如果表達(dá)式中行數(shù)大于1,則返回VAR_SAMP

總結(jié)

以上是生活随笔為你收集整理的oracle计算最大与最小之间数,oracle 分析函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。