말하자면, 나는 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)가 있습니다. –