В запросе используется выражение: SELECT user_id, CASE WHEN age < 18 THEN 'подросток' WHEN age < 30 THEN 'молодой' WHEN age < 50 THEN 'средний' ELSE 'старший' END AS segment FROM users. Пользователю 25 лет — какое значение он получит и почему?
AЗапрос вызовет ошибку, потому что
CASE нельзя использовать внутри SELECTBСтолбец
segment будет содержать NULL для всех строк, если не указан ELSECСтолбец
segment получит значение первого подходящего условия WHEN для каждой строкиDСтолбец
segment получит значение последнего подходящего условия WHEN для каждой строкиПравильный ответ.
CASE WHEN проверяет условия по порядку сверху вниз и возвращает результат первого истинного.Разбор
Выражение CASE перебирает ветки WHEN последовательно. Для пользователя 25 лет первое условие age < 18 ложно, второе age < 30 истинно — он получит значение 'молодой'. Третье условие даже не проверяется. Этот порядок важен: если бы age < 50 стояло первым, пользователь попал бы в группу 'средний'.
Проверь себя · 1/3разбор после ответа
В запросе используется выражение:
SELECT user_id, CASE WHEN age < 18 THEN 'подросток' WHEN age < 30 THEN 'молодой' WHEN age < 50 THEN 'средний' ELSE 'старший' END AS segment FROM users. Пользователю 25 лет — какое значение он получит и почему?Ещё вопросы по теме «Основы 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-запросов» →