2016-05-08 15 views
0

私は250x250mグリッドのテーブルt1を持ち、各状態のパーセンタイルを計算したいと思います。私はすでに各セル(st_contains)のstate_idを持っています。 今、私は各状態のパーセンタイルを計算したいと思います。PostgreSQL GROUP BY百分率を計算する

ソリューション、PARTITIONを追加し、テーブル定義といくつかのサンプルデータと期待される出力なし)

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

答えて

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; 
+0

これはすべての状態のパーセンタイルを計算しますが、各状態について計算します。 – fabvys

関連する問題