繁体   English   中英

PostgreSQL GROUP BY计算百分位数

[英]PostgreSQL GROUP BY calculating percentile

我有一个表格t1,其中包含250x250m的人口网格,我想计算每个州的百分位数。 我已经有每个单元格的state_id(st_contains)。 现在我想计算每个州的百分位数。

解决方案,添加PARTITION;)

   SELECT  *,
   ntile(100) OVER(PARTITION BY state_id ORDER BY pop) as percentile
   FROM t1

没有表定义,一些示例数据和预期输出,很难梦想出最佳解决方案是什么,但这可能会做到:

WITH x AS
  (
   SELECT  *,
   ntile(100) OVER (PARTITION BY state_id ORDER BY pop) as percentile
   FROM t1
  )
UPDATE t1
SET state_percentile = percentile
FROM x
WHERE t1.id = x.id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM