Skapa en pivottabell med FILTER
I föregående övning skrev du en fråga som visade antalet parkeringsöverträdelser (med numerisk kod) utfärdade av var och en av fyra myndigheter. Resultaten innehöll all önskad information, men presenterades i ett format där varje violation_code kunde visas upp till fyra gånger – en gång per vald issuing_agency. En mer kompakt representation av samma data kan uppnås genom att skapa en pivottabell.
I den här övningen skriver du en fråga med FILTER-satsen för att presentera resultaten i pivottabellformat. Den förbättrade datapresentationen gör det enklare att använda informationen i en rapport över parkeringsöverträdelser utfärdade av de fyra berörda myndigheterna.
Den här övningen är en del av kursen
Datarensning i PostgreSQL-databaser
Övningsinstruktioner
- Definiera kolumnen
Policesom antalet poster för varjeviolation_codedärissuing_agencyhar värdetP. - Definiera kolumnen
Sanitationsom antalet poster för varjeviolation_codedärissuing_agencyhar värdetS. - Definiera kolumnen
Parkssom antalet poster för varjeviolation_codedärissuing_agencyhar värdetK. - Definiera kolumnen
Transportationsom antalet poster för varjeviolation_codedärissuing_agencyhar värdetV.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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