Junior — Middle
Erklären Sie die Unterschiede zwischen dem HAVING-Operator und der WHERE-Bedingung in SQL und in welchen Fällen sie verwendet werden sollten.
sobes.tech KI
Antwort von AI
In SQL filtert die WHERE-Bedingung Zeilen vor der Gruppierung, während HAVING dies nach der Gruppierung tut.
- WHERE wird auf einzelne Zeilen der Tabelle angewendet und beschränkt den Datensatz, der aggregiert wird.
- HAVING wird auf die Ergebnisse von Aggregatfunktionen angewendet und filtert die durch den GROUP BY-Befehl gebildeten Gruppen.
Beispiel:
SELECT abteilung, COUNT(*) as mitarbeiteranzahl
FROM mitarbeiter
WHERE gehalt > 50000 -- filtert Mitarbeiter mit Gehalt über 50000
GROUP BY abteilung
HAVING COUNT(*) > 10 -- wählt Abteilungen mit mehr als 10 Mitarbeitern
Verwenden Sie WHERE, um die Ausgangsdaten zu filtern, und HAVING, um die aggregierten Ergebnisse zu filtern.