시작하기무료로 시작하기

FILTER를 사용해 피벗 테이블 만들기

이전 연습 문제에서는 네 개 기관이 발부한 주차 위반 건수를(코드별로) 조회하는 쿼리를 작성하셨죠. 원하는 정보는 모두 담겼지만, 결과에서 각 issuing_agency마다 같은 violation_code가 최대 네 번까지 중복 표시되는 형식이었습니다. 동일한 데이터를 더 간결하게 나타내려면 피벗 테이블을 만들면 됩니다.

이번 연습에서는 FILTER 절을 사용해 결과를 피벗 테이블 형태로 만드는 쿼리를 작성해 보겠습니다. 이렇게 개선된 표현은 네 개 기관별 주차 위반 보고서에 보다 쉽게 활용할 수 있어요.

이 연습은 강의의 일부입니다

PostgreSQL 데이터베이스에서 데이터 정제하기

강의 보기

연습 안내

  • Police 열은 issuing_agency 값이 P인 각 violation_code의 레코드 수로 정의하세요.
  • Sanitation 열은 issuing_agency 값이 S인 각 violation_code의 레코드 수로 정의하세요.
  • Parks 열은 issuing_agency 값이 K인 각 violation_code의 레코드 수로 정의하세요.
  • Transportation 열은 issuing_agency 값이 V인 각 violation_code의 레코드 수로 정의하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

SELECT 
	violation_code, 
    -- Define the "Police" column
	COUNT(issuing_agency) FILTER (WHERE issuing_agency = '___') AS "Police",
    -- Define the "Sanitation" column
	COUNT(___) FILTER (WHERE ___ = '___') AS "___",
    -- Define the "Parks" column
	___(___) ___ (WHERE ___ = '___') AS "___",
    -- Define the "Transportation" column
	___(___) ___ (___ ___ = '___') AS "___"
FROM 
	parking_violation 
GROUP BY 
	violation_code
ORDER BY 
	violation_code
코드 편집 및 실행