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.