[SQL] PostgreSQL을 가진 피벗 테이블 만들기
SQLPostgreSQL을 가진 피벗 테이블 만들기
포스트 그레스 리스팅라고 내가 테이블이 있다고 가정하는 다음과 같다 :
id neighborhood bedrooms price
1 downtown 0 256888
2 downtown 1 334000
3 riverview 1 505000
etc.
어떻게 크로스 탭 쿼리를 작성하려면 어떻게해야합니까 쇼가 행과 열 및 지역 등의 침실 당 평균 가격?
쿼리의 출력은 다음과 같이 (숫자 열이 침실이다, 만들어집니다)을 보일 것입니다 :
0 1 2 3
riverton 250000 300000 350000 -
downtown 189000 325000 - 450000
해결법
-
==============================
1.먼저 계산 (집계 함수의 평균과 평균) :
먼저 계산 (집계 함수의 평균과 평균) :
SELECT neighborhood, bedrooms, avg(price) FROM listings GROUP BY 1,2 ORDER BY 1,2
이 관련 질문에 대해 훌륭한 세부 사항의 지침에 따라 다음 크로스 탭 () 함수에 결과를 먹이 :
-
==============================
2.포스트 그레스에서 빌드 피벗 테이블에 가장 좋은 방법은 케이스 문이다.
포스트 그레스에서 빌드 피벗 테이블에 가장 좋은 방법은 케이스 문이다.
select neighborhood, round(avg((case when bedroom = 0 then price else 0 end)),2) as "0", round(avg((case when bedroom = 1 then price else 0 end)),2) as "1", round(avg((case when bedroom = 2 then price else 0 end)),2) as "2", round(avg((case when bedroom = 3 then price else 0 end)),2) as "3", from listings group by neighborhood;
이것은 내 출력했다
NEIGHBORHOOD 0 1 2 3 -------------------- ---------- ---------- ---------- ---------- downtown 0 373.38 328.25 524.63 riverview 0 256.83 0 1341 north 0 199.15 507.85 986.31
from https://stackoverflow.com/questions/20618323/create-a-pivot-table-with-postgresql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 다양한 형식 SQLite는의 피벗 또는 즉 선택에 표는 긴 형식으로 저장? (0) | 2020.04.08 |
---|---|
[SQL] MySQL은 여러 열을 기준으로 순위를 결정 (0) | 2020.04.08 |
[SQL] MySQL의 반복, 컬럼 이름을 통하여 (0) | 2020.04.08 |
[SQL] SQL의 모든 그룹의 선택 첫 행 [중복] (0) | 2020.04.08 |
[SQL] 그것은 열 서수의 위치를 사용하여 SQL 서버 데이터를 선택할 수있다 (0) | 2020.04.08 |