Sobes.tech
Назад к вопросам
Senior
7

В какой последовательности выполняется данный SQL-запрос (план запроса)?

Компании, где спрашивали
Сбербанк

Ответ от нейросети

sobes.tech AI

Последовательность выполнения SQL-запроса (логический план) обычно следующая:

  1. FROM — выбираются таблицы и выполняются джойны.
  2. WHERE — фильтрация строк по условию.
  3. GROUP BY — группировка данных.
  4. HAVING — фильтрация сгруппированных данных.
  5. SELECT — выборка нужных столбцов и вычисление выражений.
  6. DISTINCT — удаление дубликатов.
  7. ORDER BY — сортировка результата.
  8. LIMIT / OFFSET — ограничение количества возвращаемых строк.

Это логический порядок, который может отличаться от физического плана, оптимизатор может менять порядок операций для повышения производительности.

Пример:

SELECT department, COUNT(*)
FROM employees
WHERE salary > 50000
GROUP BY department
HAVING COUNT(*) > 5
ORDER BY department;

Здесь сначала выбираются сотрудники с зарплатой > 50000, затем они группируются по отделам, фильтруются группы с количеством сотрудников > 5, после чего результат сортируется по отделу.