Sobes.tech
Junior — Middle

Was ist der Unterschied zwischen den Operatoren HAVING und WHERE in SQL und wann sollten sie verwendet werden?

sobes.tech KI

Antwort von AI

Der WHERE-Operator wird verwendet, um Zeilen vor der Gruppierung der Daten zu filtern. Er wählt die Zeilen aus, die an nachfolgenden Operationen wie Aggregatfunktionen teilnehmen.

Der HAVING-Operator wird verwendet, um bereits gruppierte Daten zu filtern, also nach der Ausführung von GROUP BY. Er ermöglicht das Filtern von Gruppen anhand aggregierter Bedingungen.

Beispiel:

SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000  -- Zeilenfilterung nach Gehalt
GROUP BY department
HAVING COUNT(*) > 5      -- Filterung der Gruppen nach Mitarbeiterzahl

Kurz gesagt:

  • WHERE filtert einzelne Datensätze vor der Gruppierung.
  • HAVING filtert die Gruppen nach der Gruppierung.

Verwenden Sie WHERE für Bedingungen auf einzelne Felder, HAVING für Bedingungen auf aggregierte Funktionen.