CommencerCommencer gratuitement

Utiliser FILTER pour créer un tableau croisé

Dans l’exercice précédent, vous avez écrit une requête donnant le nombre d’infractions de stationnement (par leur code numérique) émises par chacune des quatre agences. Les résultats contenaient toutes les informations souhaitées, mais étaient présentés dans un format qui affichait chaque violation_code en double jusqu’à quatre fois (pour chaque issuing_agency sélectionnée). On peut obtenir une représentation plus compacte des mêmes données en créant un tableau croisé.

Dans cet exercice, vous allez écrire une requête utilisant la clause FILTER pour produire des résultats au format tableau croisé. Cette présentation améliorée des données pourra plus facilement être utilisée dans le rapport sur les infractions de stationnement émises par chacune des quatre agences étudiées.

Cet exercice fait partie du cours

Nettoyer des données dans des bases PostgreSQL

Afficher le cours

Instructions

  • Définissez la colonne Police comme le nombre d’enregistrements pour chaque violation_code avec une valeur issuing_agency égale à P.
  • Définissez la colonne Sanitation comme le nombre d’enregistrements pour chaque violation_code avec une valeur issuing_agency égale à S.
  • Définissez la colonne Parks comme le nombre d’enregistrements pour chaque violation_code avec une valeur issuing_agency égale à K.
  • Définissez la colonne Transportation comme le nombre d’enregistrements pour chaque violation_code avec une valeur issuing_agency égale à V.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de 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
Modifier et exécuter le code