가 임시 테이블을 CREATEPostgreSQL에서 백분율을 반환하는 방법은 무엇입니까?
CREATE TEMP TABLE percentage(
gid SERIAL,
zoom smallint NOT NULL,
x smallint NOT NULL,
y smallint NOT NULL
);
데이터 삽입
INSERT INTO percentage(zoom, x, y) VALUES
(0,5,20),
(0,5,21), (0,5,21),
(0,5,22), (0,5,22), (0,5,22),
(0,5,23), (0,5,23), (0,5,23), (0,5,23),
(0,5,24), (0,5,24), (0,5,24), (0,5,24), (0,5,24),
(1,5,20),
(1,5,21), (1,5,21),
(1,5,22), (1,5,22), (1,5,22),
(1,5,23), (1,5,23), (1,5,23), (1,5,23),
(1,5,24), (1,5,24), (1,5,24), (1,5,24), (1,5,24);
SELECT zoom, x, y, count(*) AS amount
FROM percentage
GROUP BY zoom,x,y
ORDER BY zoom, amount;
결과 (타일이 x와 y로 표현된다) 몇 번이나 특정 타일이 나타납니다 :
(210)zoom | x | y | amount
------+---+----+--------
0 | 5 | 20 | 1
0 | 5 | 21 | 2
0 | 5 | 22 | 3
0 | 5 | 23 | 4
0 | 5 | 24 | 5
1 | 5 | 20 | 1
1 | 5 | 21 | 2
1 | 5 | 22 | 3
1 | 5 | 23 | 4
1 | 5 | 24 | 5
(10 rows)
질문
어떻게, 얼마나 많은 시간이 특정 타일 특정 줌 나타났다가 특정 줌 각 타일 (x와 y)의 비율을 다시 얻을, 또는 다른 말로하기?
구인 결과 :
zoom | x | y | amount | percentage
------+---+----+--------+-----------
0 | 5 | 20 | 1 | 6.667
0 | 5 | 21 | 2 | 13.333
0 | 5 | 22 | 3 | 20
0 | 5 | 23 | 4 | 26.667
0 | 5 | 24 | 5 | 33.333
1 | 5 | 20 | 1 | 6.667
1 | 5 | 21 | 2 | 13.333
1 | 5 | 22 | 3 | 20
1 | 5 | 23 | 4 | 26.667
1 | 5 | 24 | 5 | 33.333
(10 rows)
이 단지 샘플 데이터, 백분율은 순수한 우연의 일치 제외하고, 동일 안된다됩니다 *! 잘못 아니에요 경우
, 줌 당 한 번 발생했기 때문에 모든 백분율이 같지 않아야합니까? –
@vkp 데이터는 샘플 일 뿐이며 비율은 각 확대/축소 수준에서 동일하지 않을 가능성이 높습니다! –
해당 백분율에 대한 논리가 ** 100 **까지 추가되지 않습니다 ** ** 무언가가 잘못되었습니다 –