Unterschiede und Verwendung von WHERE- und HAVING-Klauseln in SQL
SQL (Structured Query Language) ist ein leistungsstarkes Tool zum Bearbeiten und Abrufen von Datenbankdaten. Bei der Verwendung von Datenaggregationsfunktionen wie COUNT() oder SUM() ist es wichtig, den Unterschied zwischen den HAVING- und WHERE-Klauseln zu verstehen.
Übersicht
Die WHERE-Klausel wird zum Filtern von Zeilen vor der Aggregation verwendet. Es wertet die Bedingung anhand einzelner Zeilen in der Tabelle aus.
HAVING-Klausel wird zum Filtern von Zeilen nach der Aggregation verwendet. Es bewertet Bedingungen basierend auf aggregierten Daten.
Hauptunterschiede
Der entscheidendste Unterschied zwischen HAVING und WHERE ist der Zeitpunkt ihrer Filterung:
Beispiel
Betrachten Sie das folgende Beispiel:
<code class="language-sql">SELECT City, COUNT(*) AS AddressCount FROM Address WHERE State = 'MA' GROUP BY City</code>
Diese Abfrage verwendet die WHERE-Klausel, um vor der Gruppierung alle Adressen auszuwählen, die sich im Bundesstaat „MA“ befinden. Anschließend werden die Ergebnisse nach Städten gruppiert und die Anzahl der Adressen in jeder Stadt gezählt.
Jetzt ändern wir die Abfrage mithilfe der HAVING-Klausel:
<code class="language-sql">SELECT City, COUNT(*) AS AddressCount FROM Address WHERE State = 'MA' GROUP BY City HAVING AddressCount > 5</code>
In dieser modifizierten Abfrage wird die HAVING-Klausel verwendet, um die Ergebnisse nach der Aggregation zu filtern. Es werden nur Städte mit mehr als 5 Adressen ausgewählt.
Wann WO und HAVING zu verwenden sind
Durch das Verständnis des Zeitunterschieds zwischen WHERE und HAVING können Entwickler Daten basierend auf bestimmten Bedingungen vor oder nach der Aggregation effizient aus der Datenbank abrufen.
Das obige ist der detaillierte Inhalt vonWHERE vs. HAVING in SQL: Wann werden die einzelnen Klauseln zur Datenfilterung verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!