SQL-Aggregation, Gruppierung und Sortierung

SQL-Aggregation, Gruppierung und Sortierung

1. Aggregierte Abfrage

Beim Zugriff auf eine Datenbank müssen Sie häufig statistische Zusammenfassungen für eine Datenspalte in einer Tabelle durchführen, z. B. Summe, Maximalwert, Minimalwert, Durchschnittswert usw. Zu diesem Zeitpunkt müssen Sie eine Aggregatfunktion verwenden. Die sogenannte Aggregatfunktion ist eine Funktion, die zur Zusammenfassung verwendet wird. Aggregation bedeutet, mehrere Zeilen zu einer Zeile zusammenzufassen.

Gängige Aggregatfunktionen sind die folgenden:

1. COUNT-Funktion

Mit der Funktion count wird die Anzahl der Zeilen in einer Tabelle gezählt.

So zählen Sie beispielsweise die Anzahl der Zeilen in allen Daten:

Wählen Sie COUNT(*) FROM Benutzer aus;

Hinweis: COUNT(*) ermittelt die Anzahl der Zeilen mit NULL-Werten. Wenn Sie Zeilen mit NULL-Werten ausschließen möchten, können Sie count(Feldname) verwenden, um die Anzahl der Zeilen ohne NULL-Werte zu ermitteln.

SELECT COUNT(Benutzername) FROM Benutzer;

2. SUM-Funktion

Wird verwendet, um die Summe der Daten in einer beliebigen Spalte zu berechnen.

So berechnen Sie beispielsweise die Summe der Altersgruppen aller Benutzer:

SELECT Summe(Alter) FROM Benutzer;

3. AVG-Funktion

Wird verwendet, um den Durchschnitt der Daten in einer beliebigen Spalte zu berechnen.

So berechnen Sie beispielsweise das Durchschnittsalter aller Benutzer:

SELECT AVG(Alter) FROM Benutzer;

4. MAX-Funktion und MIN-Funktion

Mit der Funktion MAX wird der Maximalwert der Daten in einer beliebigen Spalte berechnet, und mit der Funktion MIN wird der Minimalwert der Daten in einer beliebigen Spalte berechnet.

So berechnen Sie beispielsweise das Höchst- und Mindestalter aller Benutzer:

SELECT MAX(Alter),MIN(Alter) FROM Benutzer;

Hinweis: Die Funktionen MAX und MIN sind auf Spalten fast aller Datentypen anwendbar, während die Funktionen SUM und AVG nur auf Spalten numerischer Typen anwendbar sind.

2. Gruppenabfrage

Aggregatfunktionen werden verwendet, um Statistiken für alle Daten in einer Tabelle zusammenzufassen. Sie können auch GROUP BY -Klausel verwenden, um die Daten in mehrere Gruppen aufzuteilen und dann statistische Zusammenfassungen durchzuführen.

Syntaxformat:

SELECT <Feldname>,... FROM <Tabellenname> GROUP BY <Feldname>,...;

Gruppieren Sie Benutzer beispielsweise nach ihrer Stadt und zählen Sie die Summe der Benutzer in jeder Stadt:

SELECT Stadt, Anzahl (*) FROM Benutzer GROUP BY Stadt;
+-------+----------+
| Stadt | Anzahl(*) |
+-------+----------+
| Peking | 60 |
| Shanghai | 45 |
| NULL | 80 |
| Jinan | 12 |
+-------+----------+

Aus den Ergebnissen können wir ersehen, dass Felder mit NULL -Wert auch als Gruppe aufgelistet werden. Wenn Sie ausschließen möchten, können Sie die WHERE Klausel verwenden.

SELECT Stadt, Anzahl (*) von Benutzern, wobei Stadt nicht NULL ist. GRUPPE NACH Stadt;

3. Filtern Sie die Aggregationsergebnisse

Wenn wir GROUP BY Klausel zum Gruppieren verwenden, müssen wir manchmal die gruppierten aggregierten Ergebnisse filtern. Wir denken vielleicht zuerst daran, die WHERE Klausel zu verwenden, aber das ist tatsächlich nicht der Fall. Stattdessen verwenden wir die HAVING Klausel. Die Rolle von HAVING ist die gleiche wie die von WHERE , beide filtern, aber WHERE wird zum Filtern von Datenzeilen verwendet, während HAVING zum Filtern gruppierter aggregierter Ergebnisse verwendet wird.

Gruppieren Sie Benutzer beispielsweise nach ihrer Stadt und filtern Sie Gruppen mit mehr als 40 Benutzern:

SELECT Stadt, COUNT(*) AS Nummer FROM Benutzer GROUP BY Stadt HAVING Nummer>40;

Ein weiteres Beispiel: Gruppieren Sie Benutzer nach ihrer Stadt und filtern Sie Gruppen heraus, in denen das Durchschnittsalter der Benutzer unter 25 Jahren liegt.

SELECT Stadt, AVG (Alter) AS Durchschnittsalter FROM Benutzer GROUP BY Stadt HAVING Durchschnittsalter <25;

1. Elemente der HAVING-Klausel

Es gibt drei Arten von Elementen, die in der HAVING-Klausel verwendet werden können:

  • Konstante
  • Aggregatfunktionen
  • Der in GROUP BY Klausel angegebene Spaltenname (also der Aggregatschlüssel)

4. Sortieren Sie die Abfrageergebnisse

Die Sortierung kann in SQL Abfragen verwendet werden, um Daten in aufsteigender ( ASC ) oder absteigender ( DESC ) Reihenfolge zu sortieren. Die Standardeinstellung ist aufsteigende Reihenfolge.

Syntaxformat:

SELECT <Feldname>, ... FROM <Tabellenname> ORDER BY <Feldname> ASC/DESC, ...;

So sortieren Sie beispielsweise die Datensätze in der Benutzertabelle in aufsteigender Reihenfolge nach Alter:

SELECT * FROM Benutzer ORDER BY Alter ASC;

Hinweis: Für eine aufsteigende Reihenfolge kann ASC weggelassen werden, für eine absteigende Reihenfolge ist jedoch DESC erforderlich.

So sortieren Sie beispielsweise die Datensätze in der Benutzertabelle in absteigender Reihenfolge nach Alter:

SELECT * FROM Benutzer ORDER BY Alter DESC;

1. Mehrere Sortierschlüssel angeben

In ORDER BY Klausel können mehrere Sortierschlüssel angegeben werden. So sortieren Sie beispielsweise die Datensätze in der users in absteigender Reihenfolge nach Alter und aufsteigender Reihenfolge nach Registrierungszeit:

SELECT * FROM student ORDER BY Alter DESC, Anmeldezeit ASC;

Trennen Sie beim Sortieren mehrerer Felder diese mit „,“.

2. Sortieren mit Aggregatfunktionen

ORDER BY -Klausel kann auch die Ergebnisse von Aggregatfunktionen zum Sortieren verwenden.

Gruppieren Sie Benutzer beispielsweise nach ihrer Stadt und sortieren Sie nach der Anzahl der Benutzer in jeder Gruppe:

SELECT Stadt, COUNT(*) AS Nummer FROM Benutzer GROUP BY Stadt ORDER BY Nummer;

Dies ist das Ende dieses Artikels über SQL-Aggregation, Gruppierung und Sortierung. Weitere relevante Inhalte zu SQL-Aggregation, Gruppierung und Sortierung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung von Beispielen für MySQL-Einzeltabellenabfragevorgänge [Syntax, Einschränkungen, Gruppierung, Aggregation, Filterung, Sortierung usw.]

<<:  Detaillierte Erklärung der Winkelinhaltsprojektion

>>:  Detaillierte Erklärung der Unterschiede zwischen ähnlichen Tags und Attributen in HTML

Artikel empfehlen

Grundlegende Verwendung der JS-Datumssteuerung My97DatePicker

My97DatePicker ist ein sehr flexibles und benutze...

Detaillierte Erläuterung des CocosCreator-Projektstrukturmechanismus

Inhaltsverzeichnis 1. Projektordnerstruktur 1. As...

Der praktische Prozess des Login-Status-Managements im vuex-Projekt

Inhaltsverzeichnis Werkzeug: Anmeldeszenario: übe...

So ändern Sie die IP-Einschränkungsbedingungen des MySQL-Kontos

Vorwort Kürzlich stieß ich bei der Arbeit auf ein...

Welche Codes sollte ich beherrschen, wenn ich Webdesign lerne?

In diesem Artikel werden einige der Techniken ausf...

Linux CentOS6.5 yum installiere mysql5.6

In diesem Artikel wird der einfache Prozess der I...

Eine kurze Erläuterung der Rolle des Parameters docker --privileged=true

Mit etwa Version 0.6 wurde Privileged in Docker e...

Die Rolle von nextTick in Vue und mehrere einfache Anwendungsszenarien

Zweck Verstehen Sie die Rolle von nextTick und me...

Dieser Artikel zeigt Ihnen das Prinzip der MySQL Master-Slave-Synchronisation

Inhaltsverzeichnis Kurze Analyse des MySQL Master...

So fragen Sie die Schnittmenge von Zeiträumen in MySQL ab

Mysql-Abfragezeitraum-Schnittmenge Anwendungsszen...

Zusammenfassung einiger gängiger Methoden des JavaScript-Arrays

Inhaltsverzeichnis 1. So erstellen Sie ein Array ...

So gestalten Sie das Frontend einer Website elegant und attraktiv für Benutzer

Das Temperament einer Web-Frontend-Website ist ein...

Tiefgreifendes Verständnis der logischen Architektur von MySQL

MySQL ist heute die Datenbank, die von den meiste...