Есть таблица payments(amount), в части строк amount равно NULL. Какой запрос посчитает количество всех строк в таблице, включая строки с NULL в amount?
A
SELECT COUNT(amount) FROM payments;B
SELECT COUNT(*) FROM payments;C
SELECT COUNT(amount) FROM payments WHERE amount IS NOT NULL;D
SELECT COUNT(*) FROM payments WHERE amount IS NOT NULL;Правильный ответ.
COUNT(*) считает все строки, а COUNT(колонка) — только строки, где колонка не NULL.Разбор
Выражение COUNT(*) не зависит от значений конкретных колонок и считает все строки, включая строки с NULL в любых полях. В отличие от него COUNT(amount) игнорирует строки, где amount равно NULL.
Проверь себя · 1/3разбор после ответа
Есть таблица
orders(user_id, amount). Какой запрос посчитает сумму всех заказов по каждому пользователю?Ещё вопросы по теме «Агрегация, GROUP BY и HAVING»
- Что делает оператор `DISTINCT`?
- Что делает `HAVING`?
- Есть таблица `orders(user_id, amount)`. Какой запрос посчитает сумму всех заказов по каждому пользователю?
- Нужно посчитать сумму оплаченных заказов по каждому пользователю. В таблице `orders` есть поля `user_id`, `amount`, `status`. Какой запрос корректен и наиболее эффективен?
- В таблице `users` есть колонка `middle_name`, в которой часто хранится `NULL`. Что вернёт выражение `COUNT(middle_name)`?
- Все вопросы по «Агрегация, GROUP BY и HAVING» →