Sobes.tech
Junior — Middle

Was ist der Unterschied zwischen den Bedingungen WHERE und HAVING bei der Arbeit mit SQL-Abfragen?

sobes.tech KI

Antwort von AI

In SQL werden die Bedingungen WHERE und HAVING verwendet, um Daten zu filtern, aber sie werden in verschiedenen Phasen der Abfrageverarbeitung angewendet:

  • WHERE filtert Zeilen vor der Gruppierung und Aggregation. Es beschränkt den Datensatz, der in der Abfrage verwendet wird.
  • HAVING filtert Gruppen nach der Anwendung von Aggregatfunktionen (z.B. SUM, COUNT, AVG). Es wird verwendet, um die Ergebnisse der Aggregation einzuschränken.

Beispiel:

SELECT abteilung, COUNT(*) as anzahl_mitarbeiter
FROM mitarbeiter
WHERE gehalt > 50000       -- filtert Mitarbeiter mit Gehalt > 50000
GROUP BY abteilung
HAVING COUNT(*) > 10;        -- wählt Abteilungen mit mehr als 10 Mitarbeitern

Hier wählt WHERE Mitarbeiter mit einem Gehalt über 50000 aus, und HAVING filtert die Abteilungen, in denen mehr als 10 Mitarbeiter sind.