Sobes.tech
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.