В таблице 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-запросов»
- В таблице `users` нужно выбрать только активных пользователей из России или Казахстана. Какой `WHERE` соответствует требованию?
- Для отчёта по регистрациям вам нужны только `user_id` и `signup_at` из таблицы `users`. Какой запрос лучше соответствует задаче и не тянет лишние поля?
- Нужно получить 20 самых новых событий из таблицы `events` (по времени `event_time`) и показать их в выдаче сверху. Какой запрос верный?
- Вы строите выдачу «последние заказы» и используете `LIMIT 50`. Поле `created_at` не уникально (много заказов в одну секунду). Какой `ORDER BY` лучше, чтобы порядок был детерминированным?
- Что можно корректно утверждать про результат запроса `SELECT user_id FROM users LIMIT 10`, если в запросе нет `ORDER BY`?
- Все вопросы по «Основы SQL-запросов» →