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