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

AORDER BY updated_at DESC NULLS FIRST
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. Требование «NULL внизу» означает NULLS LAST. Требование стабильности при одинаковом updated_at означает добавление tie-breaker, например event_id ASC. Поэтому корректная сортировка: ORDER BY updated_at DESC NULLS LAST, event_id ASC.

Проверь себя · 1/3разбор после ответа
В таблице orders нужно вывести заказы так, чтобы сначала шли самые дорогие (amount), а при одинаковой сумме — более ранние по created_at (чтобы вверху был «первый» из одинаковых). Какой ORDER BY подходит?
Тренировать SQL в Telegram

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