使用 FILTER 建立樞紐分析表
在上一個練習中,你寫了一段查詢,提供各機關(以數字代碼表示)開出的違規停車筆數資訊。結果包含所有需要的資訊,但呈現格式會在結果中重複顯示每個 violation_code 最多 4 次(對應每個被選取的 issuing_agency)。若建立樞紐分析表,就能以更精簡的方式呈現相同資料。
在本練習中,你將使用 FILTER 子句撰寫查詢,將結果產生為樞紐分析表的格式。這種更佳的呈現方式,更方便用於各關注機關的違規停車報告中。
本練習屬於課程
清理 PostgreSQL 資料庫中的資料
練習說明
- 將
Police欄位定義為每個violation_code在issuing_agency為P時的記錄數。 - 將
Sanitation欄位定義為每個violation_code在issuing_agency為S時的記錄數。 - 將
Parks欄位定義為每個violation_code在issuing_agency為K時的記錄數。 - 將
Transportation欄位定義為每個violation_code在issuing_agency為V時的記錄數。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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