Usar FILTER para crear una tabla dinámica
En el ejercicio anterior, escribiste una consulta que proporcionaba información sobre el número de multas de estacionamiento (por su código numérico) emitidas por cada una de cuatro agencias. Los resultados contenían toda la información deseada, pero se presentaban en un formato que incluía una visualización duplicada de cada violation_code hasta cuatro veces (por cada issuing_agency seleccionada) en los resultados. Se puede lograr una representación más compacta de los mismos datos creando una tabla dinámica.
En este ejercicio, escribirás una consulta utilizando la cláusula FILTER para producir resultados en formato de tabla dinámica. Esta presentación mejorada de los datos se puede utilizar más fácilmente en el informe de multas de estacionamiento emitidas por cada una de las cuatro agencias de interés.
Este ejercicio forma parte del curso
Limpieza de datos en bases de datos PostgreSQL
Instrucciones del ejercicio
- Define la columna
Policecomo el número de registros para cadaviolation_codecon un valor deissuing_agencyigual aP. - Define la columna
Sanitationcomo el número de registros para cadaviolation_codecon un valor deissuing_agencyigual aS. - Define la columna
Parkscomo el número de registros para cadaviolation_codecon un valor deissuing_agencyigual aK. - Define la columna
Transportationcomo el número de registros para cadaviolation_codecon un valor deissuing_agencyigual aV.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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