Sobes.tech
Middle+

W jakiej kolejności wykonywane są operatory SQL: SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING, LIMIT?

sobes.tech AI

Odpowiedź od AI

Logika kolejność wykonywania operatorów SQL różni się od kolejności ich pisania w zapytaniu. Jest następująca:

  1. FROM — wybierane są tabele i wykonywane JOINy, tworząc początkowy zestaw danych.
  2. JOIN — łączenie tabel odbywa się razem z FROM.
  3. WHERE — filtrowanie wierszy początkowego zestawu danych według warunku.
  4. GROUP BY — grupowanie przefiltrowanych danych według wskazanych kolumn.
  5. HAVING — filtrowanie pogrupowanych danych według warunków agregacji.
  6. SELECT — wybór potrzebnych kolumn i obliczanie wyrażeń.
  7. LIMIT (lub TOP) — ograniczenie liczby zwracanych wierszy.

Przykład:

SELECT department, COUNT(*)
FROM employees
JOIN departments ON employees.dept_id = departments.id
WHERE salary > 50000
GROUP BY department
HAVING COUNT(*) > 5
LIMIT 10;

Najpierw łączone są tabele, następnie filtrowani są pracownicy według wynagrodzenia, potem grupowani według działów, grupy są filtrowane według liczby pracowników, wybierane są kolumny, a na końcu ograniczana jest liczba wyników.