Die WHERE- und HAVING-Klauseln werden beide zum Filtern von Daten in SQL verwendet, ihre Geltungsbereiche sind jedoch unterschiedlich: Die WHERE-Klausel filtert einzelne Zeilen und die HAVING-Klausel filtert die gruppierte Ergebnismenge. Die WHERE-Klausel wird vor dem Gruppieren angewendet und wirkt sich auf die Ergebniszeilen der Aggregatfunktion aus. Die HAVING-Klausel wird nach dem Gruppieren angewendet und wirkt sich auf gruppierte Zeilen und nicht auf einzelne Zeilen aus. Die WHERE-Klausel kann jede Spalte filtern, während die HAVING-Klausel nur die Ergebnisse von Aggregatfunktionen filtern kann.
Unterschied zwischen WHERE- und HAVING-Klauseln
In SQL-Abfragen werden WHERE- und HAVING-Klauseln zum Filtern von Datenzeilen verwendet, sie haben jedoch unterschiedliche Bereiche und Zwecke. Die
WHERE-Klausel
HAVING-Klausel
Vergleichstabelle
Merkmale | WHERE-Klausel | HAVING-Klausel |
---|---|---|
Geltungsbereich | Einzelne Zeile | Gruppe | .
Anwendungszeitpunkt | Vor dem Gruppieren | Gruppieren nach |
betrifft | Ergebniszeilen der Aggregatfunktion | gruppierte Zeilen |
Beispiel
Die folgende Abfrage verwendet die WHERE-Klausel, um Bestellungen mit Verkäufen über 1000 herauszufiltern:
<code class="sql">SELECT * FROM orders WHERE sales_amount > 1000;</code>
Die folgende Abfrage verwendet die HAVING-Klausel Filtern Sie alle Kunden heraus, deren durchschnittlicher Umsatz 1000 übersteigt:
<code class="sql">SELECT customer_id, AVG(sales_amount) AS avg_sales FROM orders GROUP BY customer_id HAVING avg_sales > 1000;</code>
Hinweise
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen where und have in SQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!