집 >데이터 베이스 >MySQL 튜토리얼 >이웃 및 침실 수별 평균 주택 가격을 요약하기 위해 PostgreSQL에서 피벗 테이블을 만드는 방법은 무엇입니까?
PostgreSQL에서 피벗 테이블을 생성하여 주택 가격 분석
PostgreSQL은 피벗 테이블 생성을 포함하여 데이터 요약을 위한 강력한 기능을 제공합니다. 이 예에서는 지역 및 침실 수별로 그룹화된 평균 주택 가격을 보여주는 피벗 테이블을 생성하는 방법을 보여줍니다.
1단계: 지역별 평균 가격 및 침실 개수 계산
먼저 이웃과 침실 개수의 고유한 각 조합에 대한 평균 가격을 계산합니다.
<code class="language-sql">SELECT neighborhood, bedrooms, AVG(price) AS avg_price FROM listings GROUP BY neighborhood, bedrooms ORDER BY neighborhood, bedrooms;</code>
이 쿼리는 listings
테이블 데이터를 neighborhood
및 bedrooms
별로 그룹화하여 각 그룹의 평균 price
을 계산합니다. 그런 다음 명확성을 위해 결과를 정렬했습니다.
2단계: crosstab()
집계된 데이터를 피벗 테이블 형식으로 변환하려면 crosstab()
함수를 사용합니다.
<code class="language-sql">SELECT * FROM crosstab( 'SELECT neighborhood, bedrooms, avg_price FROM ( SELECT neighborhood, bedrooms, AVG(price) AS avg_price FROM listings GROUP BY neighborhood, bedrooms ORDER BY neighborhood, bedrooms )', $$SELECT unnest('{0,1,2,3}'::int[])::text$$ ) AS ct ("neighborhood" text, "0" int, "1" int, "2" int, "3" int);</code>
crosstab()
함수는 집계된 데이터를 제공하는 SQL 쿼리(이 경우 명확성을 위해 중첩됨)와 피벗 테이블 열의 범주를 정의하는 쿼리(여기서는 침실 수를 나타냄: 0, 1, 2, 3). 결과 테이블 별칭 ct
에는 그에 따라 열 이름이 할당됩니다.
3단계: 결과 해석
출력 피벗 테이블은 다음과 유사합니다.
<code>neighborhood | 0 | 1 | 2 | 3 ----------------+---------+---------+---------+--------- downtown | 189000 | 325000 | NULL | 450000 riverview | 250000 | 300000 | 350000 | NULL</code>
각 행은 동네를 나타내고, 각 열은 침실 개수를 나타냅니다. 값은 특정 동네와 침실 조합의 평균 가격을 나타냅니다. NULL
은 특정 조합에 대한 목록이 없음을 나타냅니다. 이는 평균 주택 가격에 대한 명확하고 간결한 요약을 제공합니다. 데이터에 다양한 범위의 침실 개수가 포함된 경우 unnest
함수에서 침실 카테고리를 조정하는 것을 잊지 마세요.
위 내용은 이웃 및 침실 수별 평균 주택 가격을 요약하기 위해 PostgreSQL에서 피벗 테이블을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!