В таблице событий поле updated_at может быть NULL (ещё не обработано). Нужно отсортировать так: сначала обработанные события по свежести обновления, затем необработанные внизу, и при одинаковом updated_at порядок должен быть стабильным по event_id. Какой ORDER BY соответствует этому?

AORDER BY updated_at DESC NULLS FIRST, event_id ASC
BORDER BY updated_at DESC, event_id ASC
CORDER BY updated_at DESC NULLS LAST
DORDER BY updated_at DESC NULLS LAST, event_id ASC
Правильный ответ. Сочетайте NULLS LAST для положения пропусков и второй столбец в ORDER BY для стабильности при совпадениях.

Разбор

Условие «сначала свежие обновления» означает updated_at DESC. Условие «пропуски внизу» означает NULLS LAST. Условие стабильного порядка при одинаковом updated_at означает добавление второго ключа сортировки, например event_id ASC. Без второго ключа порядок строк с одинаковым updated_at может меняться от запроса к запросу. Поэтому корректная сортировка: ORDER BY updated_at DESC NULLS LAST, event_id ASC.

Проверь себя · 1/3разбор после ответа
Таблицы orders_2024 и orders_2025 имеют одинаковую структуру. Некоторые заказы случайно попали в обе таблицы. Чем будут отличаться результаты SELECT * FROM orders_2024 UNION SELECT * FROM orders_2025 и того же запроса с UNION ALL?
Тренировать SQL в Telegram

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