Usare FILTER per creare una tabella pivot
Nell’esercizio precedente hai scritto una query che forniva informazioni sul numero di violazioni di sosta (in base al loro codice numerico) emesse da ciascuna delle quattro agenzie. I risultati contenevano tutte le informazioni desiderate, ma erano presentati in un formato che mostrava ogni violation_code fino a quattro volte (per ogni issuing_agency selezionata). Una rappresentazione più compatta degli stessi dati si può ottenere creando una tabella pivot.
In questo esercizio, scriverai una query usando la clausola FILTER per produrre risultati in formato tabella pivot. Questa presentazione migliorata dei dati può essere utilizzata più facilmente nel report sulle violazioni di sosta emesse da ciascuna delle quattro agenzie di interesse.
Questo esercizio fa parte del corso
Pulizia dei dati nei database PostgreSQL
Istruzioni dell'esercizio
- Definisci la colonna
Policecome il numero di record per ciascunviolation_codecon valore diissuing_agencypari aP. - Definisci la colonna
Sanitationcome il numero di record per ciascunviolation_codecon valore diissuing_agencypari aS. - Definisci la colonna
Parkscome il numero di record per ciascunviolation_codecon valore diissuing_agencypari aK. - Definisci la colonna
Transportationcome il numero di record per ciascunviolation_codecon valore diissuing_agencypari aV.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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