НачатьНачать бесплатно

Создание сводной таблицы с помощью 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
Редактировать и запускать код