2013年12月27日 星期五

sql 2012 分析函數

LAG 上一(N)筆資料
語法
LAG (欄位 ,上幾筆 ,往前抓不到資料時的預設值)
           OVER (  partition by 分組欄位  order by 欄位)
LEAD 下一(N)筆資料
語法
LEAD  (欄位 ,下幾筆 ,往後抓不到資料時的預設值)
           OVER (  partition by 分組欄位  order by 欄位)
FIRST_VALUE 第一筆資料
語法
FIRST_VALUE (欄位)
           OVER (  partition by 分組欄位  order by 欄位)
LAST_VALUE 最後一筆資料
語法
LAST_VALUE (欄位)
           OVER (  partition by 分組欄位  order by 欄位)

排名百分比
RANK():使用RANK()次序函數來計算每筆資料列的次序編號。若遇到相同的值時,RANK()次序函數會計算傳回相同的次序值,而下一個編號會跳號後再編,因此,不一定會傳回連續的整數值。
CUME_DIST() = RANK() / 總資料列筆數
PERCENT_RANK() = (RANK()-1) / (總資料列筆數-1)
排名百分比分佈
PERCENTILE_CONT (0.5)傳回排名50%內插值取代接近值
PERCENTILE_DISC(0.5)  傳回排名50%實際值

沒有留言:

張貼留言