SG_007_CHAPTER 4 (匯聚函式)

chenai79921發表於2009-09-02

AVG([{DISTINCT | ALL}] ) 預設是all


CORR( , )返回一對錶達式的相關係數

運算為:COVAR_POP(y,x) / (STDDEV_POP(y) * STDDEV_POP(x)).


COUNT({* | [DISTINCT | ALL] }),default is ALL


COVAR_POP( , ) 返回一對錶達式的總體協方差

(SUM(y*x) - SUM(y) * SUM(x) / COUNT(x)) / COUNT(x)


COVAR_SAMP( , )返回一對錶達式的樣本協方差

(SUM(y*x) - SUM(y) * SUM(x) / COUNT(x)) / (COUNT(x)-1)


CUME_DIST() WITHIN GROUP (ORDER BY col_list
[ASC|DESC] [NULLS {first|last}])

0< CUME_DIST <= 1

對col_list中的數值排序(升序或者降序),返回數值為val_list插入到已排序的col_list中所在的位置的數值(該數值不忽略在 col_list中的重複值)這個數值除以col_list的個數和val_list的個數之和。最後得到的結果就是返回值。其實就是得到所求數值在總體 數值中的位置。分子為該數值的位置,分母為總體數值個數。


DENSE_RANK

DENSE_RANK() WITHIN GROUP (ORDER BY col_list
[ASC|DESC] [NULLS {first|last}])

對col_list中的數值排序(升序或者降序),返回數值為val_list在col_list中的名次(忽略重複值)

[@more@]GROUPING(x)

用來標示,ROLLUP or CUBE clause是否返回數值,null標示為1,有資料返回標示為0


KEEP
agg_function KEEP(DENSE_RANK {FIRST|LAST}
ORDER BY col_list [ASC|DESC] [NULLS {first|last}]))

根據聚合函式的條件max()or min(),返回對col_list排序中(從開始計數)first或(從結尾計數)last 的符合聚合函式條件的數值。該返回的數值符合聚合函式。


PERCENT_RANK

PERCENT_RANK() WITHIN GROUP (ORDER BY col_list
[ASC|DESC] [NULLS {first|last}])

和CUME_DIST(累積分配)函式類似,對於一個組中給定的行來說,在計算那行的序號時,先減1,然後除以n-1(n為組中所有的行數)。該函式總是返回0~1(包括1)之間的數。

PERCENTILE_CONT

PERCENTILE_CONT() WITHIN GROUP (ORDER BY col_list
[ASC|DESC])

對col_list進行排序,返回位置為x,x就是在col_list中的條目資料的位置。其實就是返回位置為x的條目資料。

PERCENTILE_DISC

PERCENTILE_DISC() WITHIN GROUP (ORDER BY col_list
[ASC|DESC])

同上函式,不過返回下一條記錄。這條記錄greater than or equal to value x


RANK

RANK() WITHIN GROUP (ORDER BY col_list
[ASC|DESC] [NULLS {first|last}])

val_list在排序的col_list中的位置名次,在重複值之前計算位置名次。若兩個同樣的數值,那麼被編號為1,1。接下來的一個數值被編為3,DENSE_RANK則沒有任何跳躍。

REGR_SLOPE:返回斜率,等於COVAR_POP(expr1, expr2) / VAR_POP(expr2)

REGR_INTERCEPT:返回迴歸線的y截距,等於

AVG(expr1) - REGR_SLOPE(expr1, expr2) * AVG(expr2)

REGR_COUNT:返回用於填充迴歸線的非空數字對的數目

REGR_R2:返回迴歸線的決定係數,計算式為:

If VAR_POP(expr2) = 0 then return NULL

If VAR_POP(expr1) = 0 and VAR_POP(expr2) != 0 then return 1

If VAR_POP(expr1) > 0 and VAR_POP(expr2 != 0 then

return POWER(CORR(expr1,expr),2)

REGR_AVGX:計算迴歸線的自變數(expr2)的平均值,去掉了空對(expr1, expr2)後,等於AVG(expr2)

REGR_AVGY:計算迴歸線的應變數(expr1)的平均值,去掉了空對(expr1, expr2)後,等於AVG(expr1)

REGR_SXX: 返回值等於REGR_COUNT(expr1, expr2) * VAR_POP(expr2)

REGR_SYY: 返回值等於REGR_COUNT(expr1, expr2) * VAR_POP(expr1)

REGR_SXY: 返回值等於REGR_COUNT(expr1, expr2) * COVAR_POP(expr1, expr2)


STDDEV
功能描述:計算當前行關於組的標準偏離。(Standard Deviation)


STDDEV_POP
功能描述:該函式計算總體標準偏離,並返回總體變數的平方根,其返回值與VAR_POP函式的平方根相同。(Standard Deviation-Population)


STDDEV_SAMP
功能描述: 該函式計算累積樣本標準偏離,並返回總體變數的平方根,其返回值與VAR_POP函式的平方根相同。(Standard Deviation-Sample)


VAR_POP
VAR_POP() takes a single argument, where x is a numeric expression.
This function returns the numeric population variance of x.
(SUM(x*x) – SUM(x) * SUM(x) / COUNT(x)) / COUNT(x).

VAR_SAMP
VAR_SAMP() takes a single argument, where x is a numeric expression.
(SUM(x*x) – SUM(x) * SUM(x) / COUNT(x)) / (COUNT(x)-1).


VARIANCE
功能描述:該函式返回表示式的變數,Oracle計算該變數如下:
如果表示式中行數為1,則返回0
如果表示式中行數大於1,則返回VAR_SAMP


另見:http://www.cnblogs.com/mikalshao/articles/1487550.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11997930/viewspace-1026574/,如需轉載,請註明出處,否則將追究法律責任。

相關文章