說,我有一個表格,其中保存的整數值從0到9,999,我想在每個百分位數中作出一個分佈圖。如何計算各種百分位數的計數(*)
下面是想到的。有沒有更好的辦法?
CREATE TABLE A(x INTEGER);
SELECT
(SELECT COUNT(*) FROM A WHERE x>=0 AND x<10) AS prcntl_01,
(SELECT COUNT(*) FROM A WHERE x>=10 AND x<20) AS prcntl_02,
(SELECT COUNT(*) FROM A WHERE x>=20 AND x<30) AS prcntl_03,
(SELECT COUNT(*) FROM A WHERE x>=30 AND x<40) AS prcntl_04,
(SELECT COUNT(*) FROM A WHERE x>=40 AND x<50) AS prcntl_05,
...
(SELECT COUNT(*) FROM A WHERE x>=9990 AND x<10000) AS prcntl_100,
SQL語句的大小不是一個考慮因素,因爲我可以在運行中生成它。我只是想知道是否有一種習慣的方式來獲得每個百分點的人口數量。
百分位數是什麼意思?每個百分位數應該有相同的行數(1/100的觀察值),所以我不明白你在這裏計算的是什麼。看看[ntile](http://www.postgresql.org/docs/8.4/static/functions-window.html)。在9.4(devel)中有一些[百分位數函數](http://www.postgresql.org/docs/devel/static/functions-aggregate.html) –