В таблице sessions 5 строк. Значения utm_source: 'google', NULL, 'email', NULL, NULL. Чему равны COUNT(*) и COUNT(utm_source)?
A
COUNT(*) = 2, COUNT(utm_source) = 5: первый вариант пропускает NULL, второй учитывает все строкиB
COUNT(*) = 5, COUNT(utm_source) = 5: оба варианта считают одинаково и значение NULL не влияет на счётC
COUNT(*) = 2, COUNT(utm_source) = 2: оба варианта пропускают NULL и учитывают только не-NULL значенияD
COUNT(*) = 5, COUNT(utm_source) = 2: первый считает все строки, второй пропускает три значения NULLПравильный ответ.
COUNT(*) считает строки, а COUNT(column) считает только не-NULL значения в столбце.Разбор
COUNT(*) считает количество строк, независимо от того, есть ли NULL в каких-либо полях. COUNT(utm_source) считает количество строк, где utm_source не равен NULL. В примере всего 5 строк, но только 2 значения не-NULL ('google' и 'email'), поэтому получаем COUNT(*) = 5 и COUNT(utm_source) = 2.
Проверь себя · 1/3разбор после ответа
Какой фильтр в
WHERE корректно оставит только строки, где столбец channel задан (не равен NULL)?Ещё вопросы по теме «Выражения и NULL»
- Нужно выбрать пользователей без электронной почты. Какое условие в `WHERE` корректно найдёт строки, где `email` отсутствует?
- В таблице `orders` поле `promo_code` может быть `NULL`. Что произойдёт со строкой, где `promo_code = NULL`, при фильтре `WHERE promo_code <> 'NONE'`?
- В таблице `payments` три строки со значениями `amount`: `NULL`, `NULL`, `NULL`. Что вернут запросы `SELECT SUM(amount)` и `SELECT SUM(COALESCE(amount, 0))`?
- Что вернёт выражение `COALESCE(NULL, NULL, 'web', 'app')`?
- Дано выражение: `CASE WHEN status = 'paid' THEN amount ELSE 0 END`. Что вернётся, если `status` равно `NULL`, а `amount` равно 500?
- Все вопросы по «Выражения и NULL» →