1

使用傳統SQL的BigQuery具有相當方便的QUANTILES函數,可以快速獲取表格中值的直方圖,而無需手動指定存儲區。BigQuery中的分位數函數標準SQL

我在Standard SQL中找不到合適的聚合函數。我是否錯過了明顯的東西,或者其他方式,模擬它的標準方式是什麼?

回答

5

您正在尋找的APPROX_QUANTILES function :)其中一個例子從文檔是:

#standardSQL 
SELECT APPROX_QUANTILES(x, 2) AS approx_quantiles 
FROM UNNEST([NULL, NULL, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10]) AS x; 

+------------------+ 
| approx_quantiles | 
+------------------+ 
| [1, 5, 10]  | 
+------------------+ 

注意,它返回一個數組,但如果你想數組作爲各行的元素,可以打印結果:

#standardSQL 
SELECT 
    quant, offset 
FROM UNNEST((
    SELECT APPROX_QUANTILES(x, 2) AS quants 
    FROM UNNEST([NULL, NULL, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10]) AS x 
)) AS quant WITH OFFSET 
ORDER BY offset;