聚合與視窗函式



本章詳細解釋了聚合函式和視窗函式。

聚合函式

聚合函式從一組輸入值生成單個結果。下表詳細描述了聚合函式列表。

序號 函式及描述
1 AVG(exp)

計算資料來源中所有記錄的列的平均值。

2 CORR(expression1, expression2)

返回一組數字對之間的相關係數。

3 COUNT()

返回行數。

4 MAX(expression)

返回所選列的最大值。

5 MIN(expression)

返回所選列的最小值。

6 SUM(expression)

返回給定列的總和。

7 LAST_VALUE(expression)

返回給定列的最後一個值。

視窗函式

視窗函式在一組行上執行,併為查詢中的每一行返回單個值。視窗指的是函式作用的行集。

查詢中的視窗函式使用 OVER() 子句定義視窗。

OVER() 子句具有以下功能:

  • 定義視窗分割槽以形成行組。(PARTITION BY 子句)
  • 對分割槽內的行進行排序。(ORDER BY 子句)

下表詳細描述了視窗函式。

函式 返回型別 描述
rank() int 返回當前行的排名,帶間隙。
row_num() int 返回其分割槽內當前行的序號,從 1 開始計數。
lead(value[, offset integer[, default any]]) 與輸入型別相同 返回在分割槽內當前行之後 offset 行處計算的值。如果沒有這樣的行,則返回預設值。
lag(value[, offset integer[, default any]]) 與輸入型別相同 返回在分割槽內當前行之前 offset 行處計算的值。
first_value(value) 與輸入型別相同 返回輸入行的第一個值。
last_value(value) 與輸入型別相同 返回輸入行的最後一個值。
廣告