Есть таблица payments(amount), в части строк amount равно NULL. Какой запрос посчитает количество всех строк в таблице, включая строки с NULL в amount?

ASELECT COUNT(amount) FROM payments;
BSELECT COUNT(*) FROM payments;
CSELECT COUNT(amount) FROM payments WHERE amount IS NOT NULL;
DSELECT COUNT(*) FROM payments WHERE amount IS NOT NULL;
Правильный ответ. COUNT(*) считает все строки, а COUNT(колонка) — только строки, где колонка не NULL.

Разбор

Выражение COUNT(*) не зависит от значений конкретных колонок и считает все строки, включая строки с NULL в любых полях. В отличие от него COUNT(amount) игнорирует строки, где amount равно NULL.

Проверь себя · 1/3разбор после ответа
Есть таблица orders(user_id, amount). Какой запрос посчитает сумму всех заказов по каждому пользователю?
Тренировать SQL в Telegram

Ещё вопросы по теме «Агрегация, GROUP BY и HAVING»