Назад к вопросам
Senior
7
В какой последовательности выполняется данный SQL-запрос (план запроса)?
Компании, где спрашивали
Сбербанк
Ответ от нейросети
sobes.tech AI
Последовательность выполнения SQL-запроса (логический план) обычно следующая:
- FROM — выбираются таблицы и выполняются джойны.
- WHERE — фильтрация строк по условию.
- GROUP BY — группировка данных.
- HAVING — фильтрация сгруппированных данных.
- SELECT — выборка нужных столбцов и вычисление выражений.
- DISTINCT — удаление дубликатов.
- ORDER BY — сортировка результата.
- LIMIT / OFFSET — ограничение количества возвращаемых строк.
Это логический порядок, который может отличаться от физического плана, оптимизатор может менять порядок операций для повышения производительности.
Пример:
SELECT department, COUNT(*)
FROM employees
WHERE salary > 50000
GROUP BY department
HAVING COUNT(*) > 5
ORDER BY department;
Здесь сначала выбираются сотрудники с зарплатой > 50000, затем они группируются по отделам, фильтруются группы с количеством сотрудников > 5, после чего результат сортируется по отделу.