我有一个表格t1,其中250x250m网格有人口,我想计算每个州的百分位数。我已经拥有每个单元格的state_id(st_contains)。 现在我想计算每个州的百分位数。
解决方案,添加PARTITION;)
SELECT *,
ntile(100) OVER(PARTITION BY state_id ORDER BY pop) as percentile
FROM t1
答案 0 :(得分:1)
如果没有表格定义和一些样本数据以及预期的输出,很难想象最好的解决方案是什么,但这可能会这样做:
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;