Використання FILTER для створення зведеної таблиці
У попередній вправі ви написали запит, який надавав інформацію про кількість порушень правил паркування (за їхнім числовим кодом), виписаних кожною з чотирьох установ. Результати містили всі потрібні дані, але були подані у форматі, де кожен violation_code дублювався до чотирьох разів (для кожного вибраного issuing_agency). Більш компактного подання тих самих даних можна досягти, створивши зведену таблицю.
У цій вправі ви напишете запит із використанням FILTER, щоб отримати результати у форматі зведеної таблиці. Таке поліпшене подання даних зручніше використати в звіті про порушення паркування, виписані кожною з чотирьох установ, що нас цікавлять.
Ця вправа є частиною курсу
Очищення даних у базах даних PostgreSQL
Інструкції до вправи
- Визначте стовпець
Policeяк кількість записів для кожногоviolation_codeзissuing_agency=P. - Визначте стовпець
Sanitationяк кількість записів для кожногоviolation_codeзissuing_agency=S. - Визначте стовпець
Parksяк кількість записів для кожногоviolation_codeзissuing_agency=K. - Визначте стовпець
Transportationяк кількість записів для кожногоviolation_codeзissuing_agency=V.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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