窗口分析函数_17_计算百分位数
生活随笔
收集整理的這篇文章主要介紹了
窗口分析函数_17_计算百分位数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? 計算百分位數
需求描述
需求:將EMP表里的部門編號為20的SAL字段按照由高到低排序取50百分位。
解決方法:通過percentile_cont OVER()來完成.
注: 數據庫數據集SQL腳本詳見如下鏈接地址
員工表結構和數據初始化SQL腳本
SQL代碼
-- SQL Server、Oracle、Mysql 8.0 SELECTpercentile_cont(0.5)WITHIN GROUP (ORDER BY sal) OVER (PARTITION BY deptno) AS percentile_contFROM emp WHERE deptno=20執行結果
注:percentile_cont計算方法說明:
1 獲得每個分區對應的序號并記作N。
2 RN = p*(N-1), p是PERCENTILE_CONT()里的參數,比如0.5。
3 計算每個分區里的FRN、CRN( FRN= floor(RN)、CRN = ceil(RN))。
4 比較FRN和CRN
??? 如果(CRN = FRN = RN)則結果是RN行對應數據,rn從0開始計數。
??? 其它則(CRN - RN)*(FRN行對應數據)+(RN - FRN)*(FRN行對應數據)
總結
以上是生活随笔為你收集整理的窗口分析函数_17_计算百分位数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LPR可以不用转换吗 要不要转换看银行的
- 下一篇: 窗口分析函数_18_算累计百分位数