Логический порядок: FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Это порядок смысла запроса, а не обязательный физический план исполнения.
Дан SQL-запрос с SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT. Распиши последовательность выполнения операций от первой до последней.
Логический порядок: FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Это порядок смысла запроса, а не обязательный физический план исполнения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Логический порядок: FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Это порядок смысла запроса, а не обязательный физический план исполнения.
FROM формирует источник, WHERE отбирает строки до группировки, GROUP BY создаёт группы, HAVING фильтрует их, SELECT вычисляет итоговые столбцы. ORDER BY упорядочивает результат, LIMIT ограничивает число строк.
Оконные функции работают над набором после группировки и HAVING, а DISTINCT применяется к проекции до окончательного ограничения. Оптимизатор может переставлять физические операции, сохраняя результат. Поэтому логический порядок объясняет видимость алиасов, но не доказывает, что СУБД действительно прочитает всю таблицу.