欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

分析函數(shù)的特點

吉茹定2年前10瀏覽0評論

分析函數(shù)的特點?

oracle數(shù)據(jù)庫函數(shù),分析函數(shù)用于為行定義一個窗口,它對一組值進(jìn)行操作,不需要使用GROUP BY子句對數(shù)據(jù)進(jìn)行分組,能夠在同一行中同時返回基礎(chǔ)行的列和聚合列。

分析函數(shù)的作用:

在SQL語句中,很多查詢語句需要進(jìn)行GROUP BY分組匯總,但是一旦經(jīng)過分組,SELECT返回的記錄數(shù)就會減少。為了保留所有原始行記錄,并且仍可以進(jìn)行分組數(shù)據(jù)分析,分析函數(shù)應(yīng)運而生。

分析函數(shù)與聚合函數(shù)計算方式一樣,分析函數(shù)也是對行集組進(jìn)行聚合計算,但是它不像普通聚合函數(shù)那樣每組只返回一個值,分析函數(shù)可以為每組返回多個值。

分析函數(shù)的語法為:over(PARTITION by 列名1 order by 列名2 ),括號中的兩個關(guān)鍵詞partition by 和ORDER BY 可以只出現(xiàn)一個。over() 前面是一個函數(shù),如果是聚合函數(shù),那么order by 不能一起使用。

分析函數(shù)的分類:

1.排名分析函數(shù)

ROW_NUMBER、DENSE_RANK、RANK屬于排名函數(shù)。

排名分析函數(shù)可以單獨使用ORDER BY 語句,也可以和PARTITION BY同時使用。

PARTITION BY用于將結(jié)果集進(jìn)行分組。

ORDER BY 指定排名分析函數(shù)的順序,在排名分析函數(shù)中必須使用ORDER BY語句。

ROW_NUMBER 為每一組的行按順序生成一個連續(xù)序號。

RANK()也為每一組的行生成一個序號,與ROW_NUMBER()不同的是如果按照ORDER BY的排序,如果有相同的值會生成相同的序號,并且接下來的序號是不連序的。例如兩個相同的行生成序號3,那么接下來會生成序號5。

DENSE_RANK()和RANK()類似,不同的是如果有相同的序號,那么接下來的序號不會間斷。也就是說如果兩個相同的行生成序號3,那么接下來生成的序號還是4。

2.聚合分析函數(shù)

很多聚合函數(shù)都可以用作分析函數(shù)的運算,如SUM、AVG、MAX、MIN、COUNT。

聚合分析函數(shù)只能使用PARTITION BY子句,ORDER BY不能與聚合分析函數(shù)一同使用。