В таблице users 1000 строк, из них у 200 пользователей поле email равно NULL. Чем будут отличаться результаты SELECT COUNT(*) FROM users и SELECT COUNT(email) FROM users?

AОба вернут одинаковое значение, потому что COUNT подсчитывает все строки таблицы
BОба вернут 0, потому что NULL-значения не считаются ни одной из функций подсчёта
CПервый вернёт число строк без NULL, второй вернёт общее число строк в таблице
DПервый вернёт общее число строк, второй пропустит строки с NULL в email
Правильный ответ. COUNT(*) считает все строки, а COUNT(столбец) считает только строки, где значение столбца не равно NULL.

Разбор

COUNT(*) подсчитывает количество строк в результате независимо от значений в столбцах — для 1000 строк вернёт 1000. COUNT(email) подсчитывает только строки, где email не равен NULL — вернёт 800. Это важное отличие при работе с данными, где есть пропуски.

Проверь себя · 1/3разбор после ответа
Что можно корректно утверждать про результат запроса SELECT user_id FROM users LIMIT 10, если в запросе нет ORDER BY?
Тренировать SQL в Telegram

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