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

Tutorial zur manuellen Installation von MySQL 8.0.13

In diesem Artikel finden Sie das Tutorial zur man...

Sortierung und Paginierung von MySQL-Abfragen

Überblick Da wir die Daten normalerweise nicht di...

Detaillierte Erklärung der Schlüsselwörter und reservierten Wörter in MySQL 5.7

Vorwort Die Schlüsselwörter von MySQL und Oracle ...

mysql teilt eine Datenzeile basierend auf Kommas in mehrere Zeilen auf

Inhaltsverzeichnis Trennwirkung Erläuterung der B...

Detaillierte Installation und Verwendung von RocketMQ in Docker

Um nach RocketMQ-Images zu suchen, können Sie auf...

Natives JS zum Erreichen von Spezialeffekt-Meldungsfeldern

In diesem Artikel wird ein Nachrichtenfeld mit Sp...

Schritte zum Installieren einer RocketMQ-Instanz unter Linux

1. JDK installieren 1.1 Überprüfen Sie, ob die ak...