Junior — Middle
Was ist der Unterschied zwischen der HAVING-Bedingung und der WHERE-Bedingung bei der Arbeit mit SQL-Abfragen?
sobes.tech KI
Antwort von AI
Der Hauptunterschied zwischen WHERE und HAVING in SQL:
- WHERE filtert Zeilen vor der Gruppierung (GROUP BY). Es wird auf einzelne Datensätze angewendet.
- HAVING filtert Gruppen nach der Gruppierung. Es wird für Bedingungen auf aggregierte Funktionen (z.B. COUNT, SUM) verwendet.
Beispiel:
SELECT abteilung, COUNT(*) als mitarbeiter_anzahl
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
Hier wählt WHERE Zeilen für die Gruppierung aus, und HAVING filtert die bereits gruppierten Daten.