Sobes.tech
Junior — Middle

Mi a különbség a HAVING és WHERE operátorok között SQL-ben, és mikor kell őket használni?

sobes.tech MI

Válasz az MI-től

A WHERE operátor a sorok szűrésére szolgál az adatok csoportosítása előtt. Kiválasztja azokat a sorokat, amelyek részt vesznek a további műveletekben, például aggregált függvényekben.

A HAVING operátor a már csoportosított adatok szűrésére szolgál, azaz a GROUP BY végrehajtása után. Lehetővé teszi a csoportok szűrését aggregált feltételek alapján.

Példa:

SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000  -- sorok szűrése fizetés szerint
GROUP BY department
HAVING COUNT(*) > 5      -- csoportok szűrése alkalmazottak száma szerint

Összefoglalva:

  • A WHERE az egyes rekordokat szűri a csoportosítás előtt.
  • A HAVING a csoportokat szűri a csoportosítás után.

Használja a WHERE-t az egyedi mezőkre vonatkozó feltételekhez, a HAVING-et az aggregált függvényekhez.