BigQuery标准SQL中的分位数函数

4

使用传统SQL的BigQuery具有相当方便的QUANTILES函数,可以快速获取表格中数值的直方图,而无需手动指定桶。

标准SQL中可用的聚合函数中,我找不到一个很好的等效函数。我是否错过了什么明显的东西?否则,模拟它的标准方法是什么?

1个回答

16
你需要查找 APPROX_QUANTILES函数 :) 文档中的一个示例如下:
#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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接