小编don*_*hcd的帖子

在BigQuery中使用GROUPBY进行百分位函数

在我的CENSUS表中,我想按国家分组,并且每个州获得县中位数和县的数量.

在psql,redshift和snowflake中,我可以这样做:

psql=> SELECT state, count(county), PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY "population2000") AS median FROM CENSUS GROUP BY state;
        state         | count |  median
----------------------+-------+----------
 Alabama              |    67 |    36583
 Alaska               |    24 |   7296.5
 Arizona              |    15 |   116320
 Arkansas             |    75 |    20229
...
Run Code Online (Sandbox Code Playgroud)

我试图在标准的BigQuery中找到一个很好的方法来做到这一点.我注意到有没有文档的percentile_cont分析功能可用,但我必须做一些主要的黑客来让它做我想要的.

我希望能够用我收集到的正确的论点做同样的事情:

SELECT
  state,
  COUNT(county),
  PERCENTILE_CONT(population2000,
    0.5) OVER () AS `medPop`
FROM
  CENSUS
GROUP BY
  state;
Run Code Online (Sandbox Code Playgroud)

但是这个查询会产生错误

SELECT list expression references column population2000 which is neither grouped nor aggregated at
Run Code Online (Sandbox Code Playgroud)

可以 …

google-bigquery

14
推荐指数
1
解决办法
6187
查看次数

标签 统计

google-bigquery ×1