Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Definisci la colonna Police come il numero di record per ciascun violation_code con valore di issuing_agency pari a P.
  • Definisci la colonna Sanitation come il numero di record per ciascun violation_code con valore di issuing_agency pari a S.
  • Definisci la colonna Parks come il numero di record per ciascun violation_code con valore di issuing_agency pari a K.
  • Definisci la colonna Transportation come il numero di record per ciascun violation_code con valore di issuing_agency pari a V.

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
Modifica ed esegui il codice