> 데이터 베이스 > MySQL 튜토리얼 > PostgreSQL에서 이웃 및 침실 수별 평균 주택 가격을 표시하는 피벗 테이블을 만드는 방법은 무엇입니까?

PostgreSQL에서 이웃 및 침실 수별 평균 주택 가격을 표시하는 피벗 테이블을 만드는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-13 09:53:43
원래의
974명이 탐색했습니다.

How to Create a Pivot Table Showing Average House Prices by Neighborhood and Bedroom Count in PostgreSQL?

PostgreSQL에서 평균 주택 가격을 표시하는 피벗 테이블 만들기

문제: 동네별, 침실 수별로 분류된 평균 주택 가격을 보여주는 요약 테이블을 어떻게 생성할 수 있나요?

해결책: 여기에는 PostgreSQL의 crosstab 함수(tablefunc 확장에 있음)를 사용하는 2단계 프로세스가 포함됩니다.

  1. 이웃 및 침실 개수별 평균 가격 계산: 먼저, 동네 및 침실 개수의 각 조합에 대한 평균 가격을 결정합니다.
<code class="language-sql">SELECT neighborhood, bedrooms, AVG(price) AS average_price
FROM listings
GROUP BY neighborhood, bedrooms
ORDER BY neighborhood, bedrooms;</code>
로그인 후 복사
  1. crosstab 함수 사용: 다음으로 1단계의 결과를 crosstab 함수에 입력합니다. 이 함수는 데이터를 피벗 테이블로 변환합니다. 두 번째 인수는 열로 원하는 침실 수를 지정합니다. tablefunc 확장 프로그램을 아직 설치하지 않았다면 설치해야 합니다(CREATE EXTENSION tablefunc;).
<code class="language-sql">SELECT *
FROM crosstab(
    'SELECT neighborhood, bedrooms, AVG(price)::int AS average_price
     FROM listings
     GROUP BY neighborhood, bedrooms
     ORDER BY neighborhood, bedrooms',
    $$SELECT unnest('{0,1,2,3}'::int[]) AS bedrooms$$
) AS ct ("neighborhood" text, "0" int, "1" int, "2" int, "3" int);</code>
로그인 후 복사

이 쿼리는 인근 지역을 행으로, 침실 0개, 1개, 2개, 3개 침실의 평균 가격을 열로 포함하는 피벗 테이블을 생성합니다. '{0,1,2,3}' 테이블에 있는 실제 침실 수를 반영하도록 listings 배열을 조정하는 것을 잊지 마세요. ::int 캐스트는 평균 가격이 정수로 처리되도록 보장합니다. price 열의 데이터 유형

에 따라 이를 조정해야 할 수도 있습니다.

위 내용은 PostgreSQL에서 이웃 및 침실 수별 평균 주택 가격을 표시하는 피벗 테이블을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿