Среди перечисленных операторов логический порядок: WHERE → GROUP BY → HAVING → ORDER BY → OFFSET → LIMIT. Это не фиксированный физический план.
Порядок исполнения операторов SQL
Среди перечисленных операторов логический порядок: WHERE → GROUP BY → HAVING → ORDER BY → OFFSET → LIMIT. Это не фиксированный физический план.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Дан набор ключевых операторов SQL. Необходимо определить порядок их выполнения внутри СУБД (а не порядок их указания в тексте запроса).
ORDER BY, OFFSET, WHERE, LIMIT, HAVING, GROUP BY
Ответ
Среди перечисленных операторов логический порядок: WHERE → GROUP BY → HAVING → ORDER BY → OFFSET → LIMIT. Это не фиксированный физический план.
WHERE удаляет строки до группировки; GROUP BY формирует группы, HAVING отбирает их по условиям, часто агрегатным. После формирования результата ORDER BY задаёт порядок, OFFSET пропускает первые строки, LIMIT ограничивает оставшееся количество.
В полном запросе присутствуют также FROM/JOIN и SELECT. Оптимизатор может использовать индексы, переносить фильтры и вообще не выполнять отдельную сортировку, если порядок уже обеспечен планом. Поэтому «порядок операторов» корректнее понимать логически, а не как обязательную последовательность шагов процессора.