SUM CASE и NULL: почему сумма в SQL стала пустой
Условные суммы выглядят корректно по отдельности, но итоговое выражение возвращает NULL. Проследите вычисление для группы, в которой одно из условий ни разу не выполнилось.
Выберите ответ и проверьте себя. Продолжить тему можно в курсе Продвинутый SQL: сложные запросы и задачи для собеседований.
Дана таблица orders(manager_id INTEGER, service_type TEXT NOT NULL, amount INTEGER NOT NULL). У менеджера1 одна строка: (1,'consulting',10000); development-заказов нет. SQLite выполняет запрос:
WITH revenue AS (SELECT manager_id, SUM(CASE WHEN service_type='consulting' THEN amount END) AS consulting_rev, SUM(CASE WHEN service_type='development' THEN amount END) AS dev_rev FROM orders GROUP BY manager_id) SELECT manager_id, consulting_rev + dev_rev AS total_rev FROM revenue;
Какое значение total_rev получит менеджер1?
Связанные задачи
- SQL: Сводные таблицы через условную агрегацию — Сводка способов доставки VIP-клиентов
- SQL: Сводные таблицы через условную агрегацию — Сводка платежей с NULL-категориями и прочими статусами
- SELF JOIN: сколько пар получится при соединении таблицы с собой
- INTERSECT в SQL: сколько строк останется после пересечения
- SQL: Агрегация, оконные вычисления и фильтрация — Категории-лидеры и доля в продажах
- SQL: SELF JOIN и поиск уникальных пар — Пары с несколькими общими проектами
