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 |