始める無料で始める

FILTER を使ってピボットテーブルを作成する

前の演習では、4つの機関それぞれが発行した駐車違反(数値コード別)の件数を返すクエリを書きました。結果には欲しい情報がすべて含まれていましたが、結果内で各 violation_code が最大4回(選択されたそれぞれの issuing_agency ごとに)重複表示される形式でした。同じデータを、よりコンパクトに表現するには、ピボットテーブルを作成するとよいです。

この演習では、FILTER 句を用いたクエリを書いて、結果をピボットテーブル形式で出力します。この改善された表示は、関心のある4つの機関それぞれが発行した駐車違反のレポートで、より扱いやすくなります。

この演習はコースの一部です

PostgreSQLデータベースで学ぶデータクレンジング

コースを見る

演習の手順

  • Police 列は、issuing_agencyP の各 violation_code についてのレコード件数として定義してください。
  • Sanitation 列は、issuing_agencyS の各 violation_code についてのレコード件数として定義してください。
  • Parks 列は、issuing_agencyK の各 violation_code についてのレコード件数として定義してください。
  • Transportation 列は、issuing_agencyV の各 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
コードを編集して実行