2018年1月24日 星期三

常用分析函數列表

以下列出常用分析函數列表,分析函數可簡化過去許多需使用多組自我連結複雜查詢語法,達成於一列(Row)上同時取得原始資料(非彙總)及彙總運算結果,如查詢一段時間之股價資料(非彙總)及5日、10日均線(彙總)之需求。傳統彙總函數使用GROUP BY進行分組,每一組群將傳回一筆統計數值,而分析函數則採用PARTITION BY為分組依據,則於每一資料列中傳回一統計值,兩者差別比較整理如下,以供應用參考。

彙總函數(Aggegate)
分析函數(Analytic)
語法
常搭配GROUP BY子句
OVER關鍵字
輸出
將多筆彙總成一筆
仍為原資料集

表中依其功能進行分類類理並列出其版本,後續文章將逐一整理說明。表中依其功能進行分類類理並列出其版本,後續文章將逐一整理說明。
類別
功能
函數
ORACLE
MSSQL
序號
連續流水序號
8i
2005
同名跳號序號
8i
2005
同名不跳號流水序號
8i
2005
/N筆料
相對前第N筆料
8i
2012
相對後第N筆料
8i
2012
N筆資料
區間內第1筆料
FIRST_VALUE
8i
2012
區間內最後1筆料
LAST_VALUE
8i
2012
區間內第N筆料
NTH_VALUE
11gR2
2012
彙總運算
累加
SUM
8i
2012
*2005
未支援移動概念
移動平均數
AVG
8i
2012
區間內最大值
MAX
8i
2012
區間內最小值
MIN
8i
2012
區間內數量
COUNT
8i
2012
群組字串合併
11gR2
2017 (STRING_AGG)
排序分群
資料歸屬群組
NTILE
8i
2012
占比
總數(報表值)占比
8i
 


沒有留言:

張貼留言