BigQuery 标准 SQL 中的分位数函数
Posted
技术标签:
【中文标题】BigQuery 标准 SQL 中的分位数函数【英文标题】:Quantiles function in BigQuery Standard SQL 【发布时间】:2017-05-10 13:43:29 【问题描述】:BigQuery with Legacy SQL 有一个非常方便的 QUANTILES
函数,可以快速获取表中值的直方图,而无需手动指定存储桶。
我在Standard SQL 中找不到很好的聚合函数等效项。我是否遗漏了一些明显的东西,或者其他的,模仿它的标准方法是什么?
【问题讨论】:
【参考方案1】:您正在寻找 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;
【讨论】:
以上是关于BigQuery 标准 SQL 中的分位数函数的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用quantile函数计算评分值的分位数(20%40%60%80%)使用逻辑操作符将对应的分位区间(quantile)编码为分类值生成新的字段strsplit函数将学生的名和姓拆分
标准 sql 中的 bigquery 旧版 sql POSITION() 函数