BigQuery 标准中的分位数函数 SQL
Quantiles function in BigQuery Standard SQL
BigQuery with Legacy SQL 有一个非常方便的 QUANTILES
函数可以快速获取 table 中值的直方图,而无需手动指定桶。
我找不到 Standard SQL 中可用的聚合函数的一个很好的等价物。我是否遗漏了一些明显的东西,或者,模拟它的标准方法是什么?
您正在寻找 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] |
+------------------+
请注意,它 returns 是一个数组,但如果您希望数组的元素作为单独的行,您可以取消嵌套结果:
#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;
BigQuery with Legacy SQL 有一个非常方便的 QUANTILES
函数可以快速获取 table 中值的直方图,而无需手动指定桶。
我找不到 Standard SQL 中可用的聚合函数的一个很好的等价物。我是否遗漏了一些明显的东西,或者,模拟它的标准方法是什么?
您正在寻找 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] |
+------------------+
请注意,它 returns 是一个数组,但如果您希望数组的元素作为单独的行,您可以取消嵌套结果:
#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;