Sobes.tech
Junior

Was ist der Unterschied zwischen WHERE- und HAVING-Anweisungen in SQL?

sobes.tech KI

Antwort von AI

WHERE wird vor der Gruppierung angewendet und filtert die Zeilen des FROM-Ergebnisses. HAVING wird nach der Gruppierung angewendet und filtert die mit GROUP BY gebildeten Gruppen.

Beispiel:

Angenommen, wir haben eine Tabelle orders mit den Spalten customer_id, order_date und amount.

Finden Sie alle Kunden, deren Gesamtbestellsumme 1000 übersteigt:

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

Finden Sie alle Bestellungen mit einem Betrag über 1000:

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

Vergleichstabelle:

Merkmal WHERE HAVING
Anwendung Auf einzelne Zeilen vor der Gruppierung Auf Gruppen von Zeilen nach der Gruppierung
Verwendet Spalten aus FROM Aggregatfunktionen und Spalten aus GROUP BY
Wird ausgeführt Vor GROUP BY Nach GROUP BY
Aggregatfunktionen Können nicht direkt verwendet werden Können verwendet werden