Usando FILTER para criar uma tabela dinâmica
No exercício anterior, você escreveu uma consulta que trazia informações sobre a quantidade de infrações de estacionamento (pelo seu código numérico) emitidas por cada um de quatro órgãos. Os resultados continham todas as informações desejadas, mas eram apresentados em um formato que exibia cada violation_code até quatro vezes (para cada issuing_agency selecionada). Uma representação mais compacta dos mesmos dados pode ser obtida com a criação de uma tabela dinâmica.
Neste exercício, você vai escrever uma consulta usando a cláusula FILTER para produzir resultados no formato de tabela dinâmica. Essa apresentação aprimorada dos dados pode ser usada com mais facilidade no relatório de infrações de estacionamento emitidas por cada um dos quatro órgãos de interesse.
Este exercicio faz parte do curso
Limpeza de dados em bancos de dados PostgreSQL
Instruções do exercicio
- Defina a coluna
Policecomo o número de registros de cadaviolation_codecomissuing_agencyigual aP. - Defina a coluna
Sanitationcomo o número de registros de cadaviolation_codecomissuing_agencyigual aS. - Defina a coluna
Parkscomo o número de registros de cadaviolation_codecomissuing_agencyigual aK. - Defina a coluna
Transportationcomo o número de registros de cadaviolation_codecomissuing_agencyigual aV.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
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