Mit FILTER eine Pivot-Tabelle erstellen
In der vorherigen Übung hast du eine Abfrage geschrieben, die Informationen zur Anzahl der ausgestellten Parkverstöße (nach ihrem numerischen Code) pro Behörde lieferte. Die Ergebnisse enthielten alle gewünschten Informationen, wurden aber in einem Format dargestellt, in dem jeder violation_code bis zu viermal (für jede ausgewählte issuing_agency) doppelt angezeigt wurde. Eine kompaktere Darstellung derselben Daten lässt sich durch das Erstellen einer Pivot-Tabelle erreichen.
In dieser Übung schreibst du eine Abfrage mit der FILTER-Klausel, um Ergebnisse im Pivot-Tabellenformat zu erzeugen. Diese bessere Darstellung der Daten lässt sich leichter im Bericht zu den von den vier relevanten Behörden ausgestellten Parkverstößen verwenden.
Diese Übung ist Teil des Kurses
Datenbereinigung in PostgreSQL-Datenbanken
Anleitung zur Übung
- Definiere die Spalte
Policeals die Anzahl der Datensätze für jedenviolation_codemit einemissuing_agency-Wert vonP. - Definiere die Spalte
Sanitationals die Anzahl der Datensätze für jedenviolation_codemit einemissuing_agency-Wert vonS. - Definiere die Spalte
Parksals die Anzahl der Datensätze für jedenviolation_codemit einemissuing_agency-Wert vonK. - Definiere die Spalte
Transportationals die Anzahl der Datensätze für jedenviolation_codemit einemissuing_agency-Wert vonV.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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