CASE, NULL и COUNT в SQL: задачи на условную агрегацию

Нужно посчитать только оплаченные заказы, а COUNT возвращает число всех строк. Или кампания без кликов получает такую же конверсию, как кампания с кликами без покупок. Разберите эти случаи через CASE, условную агрегацию и явные правила для NULL.

Начать практику: SUM CASE и NULL: почему сумма в SQL стала пустой.

Задачи на код и вопросы с выбором ответа. Проверка доступна без регистрации.

Как проходить

Первые вопросы проверяют SUM и COUNT на условных выражениях. Далее идут запросы по заказам, товарам и рекламным кампаниям: нужно вывести нужные счётчики, суммы и доли, включая объекты без связанных строк. В каждой задаче заданы точные имена столбцов, сортировка и правила округления.

На что обратить внимание

COUNT(expression) считает ненулевые в смысле NULL значения: обычный числовой 0 тоже будет посчитан. При расчёте доли отдельно решите, что означает отсутствие знаменателя. Неизвестная цена, нулевая выручка и отсутствие продаж могут требовать разных результатов.

Задания

  1. SUM CASE и NULL: почему сумма в SQL стала пустой — вопрос.
  2. COUNT CASE ELSE 0: ошибка условного подсчёта в SQL — вопрос.
  3. SQL: Условная агрегация и COUNT(DISTINCT) — Все заказы и отдельные метрики крупных оплат — код.
  4. SQL: CASE, COALESCE и NULLIF — Количество, выручка и категория товара — код.
  5. SQL: CASE, COALESCE и NULLIF — Доля конверсий по кампаниям — код.

Продолжить обучение

Разберите тему по порядку в курсе Продвинутый SQL: сложные запросы и задачи для собеседований.

Связанная практика: GROUP BY и HAVING в SQL: задачи на суммы, NULL и средние.

CASE, NULL и COUNT в SQL: задачи на условную агрегацию