Heim > Datenbank > MySQL-Tutorial > Hauptteil

Zusammenfassung der Verwendung von „group by' und „have' in SQL

巴扎黑
Freigeben: 2017-08-11 15:04:44
Original
2327 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Verwendungsanalyse von „group by“ vorgestellt und Freunde, die sie benötigen, können darauf zurückgreifen.

1. Analyse der Verwendung von „group by“ in SQL.

Die Group By-Anweisung bedeutet auf Englisch wörtlich „Gruppieren nach (nach) bestimmten Regeln“.

Funktion: Teilen Sie einen Datensatz durch bestimmte Regeln in mehrere kleine Bereiche auf und führen Sie dann die Datenverarbeitung für mehrere kleine Bereiche durch.

Hinweis: Gruppieren bedeutet, zuerst zu sortieren und dann zu gruppieren!

Beispiel: Wenn Sie Gruppieren nach verwenden möchten, wird normalerweise das Wort „jeder“ verwendet. Beispielsweise gibt es jetzt eine Anforderung: Fragen Sie ab, wie viele Personen es in jeder Abteilung gibt. Wir müssen die Gruppierungstechnologie verwenden


select DepartmentID as '部门名称',COUNT(*) as '个数'
  from BasicDepartment
  group by DepartmentID
Nach dem Login kopieren

Dies ist die Gruppierung mithilfe des Felds „Gruppieren nach +“, in dem wir verstehen können, dass wir nach der Namens-ID von gruppiert sind die Abteilung
 DepartmentID gruppiert den Datensatz und berechnet dann die statistischen Daten jeder Gruppe

2. Erklärung der Gruppe nach und mit

Voraussetzung: Sie müssen eine spezielle Funktion in der SQL-Sprachaggregationsfunktion verstehen.

 Zum Beispiel: SUMME, ANZAHL, MAX, AVG usw. Der grundlegende Unterschied zwischen diesen Funktionen und anderen Funktionen besteht darin, dass sie im Allgemeinen mit mehreren Datensätzen arbeiten.

Das Schlüsselwort WHERE kann bei der Verwendung von Aggregatfunktionen nicht verwendet werden. Daher wird HAVING zur Aggregatfunktion hinzugefügt, um zu testen, ob die Abfrageergebnisse die Bedingungen erfüllen.

Having wird als Gruppierungsfilterbedingung bezeichnet. Dies ist die für die Gruppierung erforderliche Bedingung und muss daher in Verbindung mit „Group by“ verwendet werden.

Es ist zu beachten, dass die Ausführungsreihenfolge wie folgt lautet, wenn die Where-Klausel, die Group-By-Klausel, die Have-Klausel und die Aggregatfunktion gleichzeitig enthalten sind:

1. Where ausführen -Klausel, um die qualifizierten Daten zu finden;

 2. Verwenden Sie die Group-By-Klausel, um die Daten zu gruppieren.

 3. Führen Sie die Aggregatfunktion für die durch die Group-By-Klausel gebildeten Gruppen aus, um den Wert zu berechnen jeder Gruppe;

4. Verwenden Sie abschließend die have-Klausel, um Gruppen zu entfernen, die die Bedingungen nicht erfüllen.

Jedes Element in der Have-Klausel muss auch in der Auswahlliste erscheinen. Es gibt einige Datenbankausnahmen, wie z. B. Oracle.

Sowohl die Have-Klausel als auch die Where-Klausel können verwendet werden, um Einschränkungen festzulegen, damit die Abfrageergebnisse bestimmte Bedingungen erfüllen.

Die Haveing-Klausel schränkt Gruppen ein, nicht Zeilen. Die Ergebnisse von Aggregatfunktionsberechnungen können als Bedingungen verwendet werden. Aggregatfunktionen können nicht in der Where-Klausel verwendet werden, sie können jedoch in der Have-Klausel verwendet werden.

Das obige ist der detaillierte Inhalt vonZusammenfassung der Verwendung von „group by' und „have' in SQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!