sql 精读(二) 标准 SQL 中的编号函数
標準 SQL 中的編號函數
以下部分介紹了 BigQuery 支持的編號函數。編號函數是分析函數的一部分。 如需了解分析函數的工作原理,請參閱分析函數概念。如需了解編號函數的工作原理,請參閱編號函數概念。
OVER 子句要求:
PARTITION BY:可選。
ORDER BY:必需(ROW_NUMBER() 除外)。
window_frame_clause:禁止。
RANK
說明
返回排序分區中各行的序數(從 1 開始)。所有對等行均獲得相同的排序值。下一行或下一組對等行獲得的排序值按照具有先前排序值的對等數量遞增,而非按 DENSE_RANK 遞增,后者始終按 1 遞增。
支持的參數類型
INT64
DENSE_RANK
說明
返回窗口分區中各行的序數(從 1 開始)排名。所有對等行獲得相同的排名值,后續排名值按 1 遞增。
支持的參數類型
INT64
PERCENT_RANK
說明
返回定義為 (RK-1)/(NR-1) 的百分位排名,其中 RK 是行的 RANK,NR 是分區內的行數。如果 NR=1,則返回 0。
支持的參數類型
FLOAT64
CUME_DIST
說明
返回一行的相對排名,定義為 NP/NR。NP 定義為在當前行之前或與當前行對等的行數。NR 是分區內的行數。
支持的參數類型
FLOAT64
NTILE
NTILE(constant_integer_expression)
說明
此函數根據行排序將行劃分為 constant_integer_expression 個存儲分區,返回分配給各行的存儲分區編號(從 1 開始)。存儲分區內的行數最多可以相差 1。從存儲分區 1 開始,為每個存儲分區分配一個剩余值(剩余的行數除以存儲分區數)。如果 constant_integer_expression 計算結果為 NULL、0 或負數,則會引發錯誤。
支持的參數類型
INT64
ROW_NUMBER
說明
不需要 ORDER BY 子句。返回每個排序分區中各行的順序行序號(從 1 開始)。如果未指定 ORDER BY 子句,則結果是非確定性的。
支持的參數類型
INT64
總結
以上是生活随笔為你收集整理的sql 精读(二) 标准 SQL 中的编号函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql 精读(一)标准 SQL 中的分析
- 下一篇: sql 精读(三) 标准 SQL 中的编