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

Wir zeigen Ihnen einen Trick, um einen Textvergleich unter Linux durchzuführen

Vorwort Während des Schreibens des Codes werden w...

WiFi-Entwicklung | Einführung in die WiFi-Wireless-Technologie

Inhaltsverzeichnis Einführung in die WiFi-Wireles...

JS erzielt Fünf-Sterne-Lobeffekt

Verwenden Sie JS, um objektorientierte Methoden z...

Zwei Methoden zur Implementierung der Mysql-Remoteverbindungskonfiguration

Zwei Methoden zur Implementierung der Mysql-Remot...

Windows 10 ist zu schwierig zu verwenden. Wie passen Sie Ihr Ubuntu an?

Autor | Herausgeber Awen | Produziert von Tu Min ...

Lösung für die lange Verzögerung der MySQL-Datenbank-Master-Slave-Replikation

Vorwort Die Verzögerung der MySQL Master-Slave-Re...

Diagramm zur Installation von VMware 14 unter Windows 10

Software-Download Link zum Herunterladen der Soft...

Automatischer Commit-Vorgang für MySQL-Transaktionen

Der Standardbetriebsmodus von MySQL ist der Autoc...

JavaScript imitiert den Taobao-Lupeneffekt

In diesem Artikel wird der spezifische Code für J...

Beispielcode zur Realisierung eines Buchseitenumblättereffekts mit CSS3

Wichtige Erkenntnisse: 1. Beherrschung der CSS3-3...

Entwickeln Sie eine Vue-Komponente, die Iframe kapselt

Inhaltsverzeichnis 1. Komponenteneinführung 2. In...

Vorteile von MySQL-Abdeckungsindizes

Ein allgemeiner Vorschlag besteht darin, Indizes ...

Tutorial zur Installation und Konfiguration von VMware Tools für Ubuntu

Vor einiger Zeit hat der Blogger das Ubuntu-Syste...

HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (5)

Diese eingeführten HTML-Tags entsprechen nicht un...