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