Аналитик пишет: SELECT clicks / NULLIF(views, 0) AS ctr FROM campaigns. Зачем здесь используется NULLIF(views, 0)?

AВыражение NULLIF заменяет NULL в views на 0, чтобы деление всегда возвращало число
BВыражение NULLIF вернёт NULL вместо views, если views равен 0, и деление даст NULL
CВыражение NULLIF вернёт 0 вместо views, если views равен NULL, для безопасного деления
DВыражение NULLIF вернёт ошибку, если views равен 0, чтобы предотвратить некорректный расчёт
Правильный ответ. NULLIF(a, b) возвращает NULL, если a = b, иначе возвращает a. Это защищает от деления на ноль.

Разбор

NULLIF(views, 0) вернёт NULL, если views равен 0, и само значение views в остальных случаях. Деление на NULL в SQL возвращает NULL (а не ошибку), поэтому строки с нулём просмотров получат NULL в столбце ctr вместо ошибки деления на ноль. Это стандартный защитный паттерн при расчёте метрик.

Проверь себя · 1/3разбор после ответа
В таблице payments нужно выбрать платежи из России (country = 'RU') со статусом либо 'failed', либо 'chargeback'. Какой WHERE корректный?
Тренировать SQL в Telegram

Ещё вопросы по теме «Основы SQL-запросов»