Zurück zur Artikelliste Artikel
7 Leseminuten

SQL-Aggregat-Funktionen - Spickzettel

Eine Kurzreferenz für die Verwendung von SQL-Aggregatfunktionen.

Dieses SQL Aggregate Functions Cheat Sheet soll Sie bei der Verwendung von SQL zur Datenanalyse begleiten.

Das Aggregieren von Daten ist für jede sinnvolle Datenanalyse unerlässlich. SQL bietet eine Reihe von Funktionen, mit denen Sie Summen, Durchschnittswerte und Zählungen in Ihre Berichte aufnehmen und den Mindest- und Höchstwert einer beliebigen Datenspalte extrahieren können.

In diesem Cheat Sheet werden wir die folgenden SQL-Aggregatfunktionen demonstrieren:

  • SUM() - Gibt die Summe aller Werte zurück.
  • AVG() - Gibt den durchschnittlichen Mittelwert aller Werte zurück.
  • COUNT() - Zählt und gibt die Anzahl der Werte zurück.
  • MIN() - Gibt den kleinsten Wert zurück.
  • MAX() - Gibt den größten Wert zurück.

Wir werden auch zeigen, wie man Aggregatfunktionen verwendet:

  • Mit GROUP BY.
  • Um Daten zu ordnen.
  • Als Filterungsbedingung.

Wenn Sie noch nie mit SQL gearbeitet haben, können Sie sich zunächst für unseren Kurs SQL für Anfänger anmelden. Dieser Kurs ist für absolute Anfänger geeignet; seine 129 interaktiven Übungen werden Ihnen helfen, schnell Kenntnisse und Sicherheit zu erlangen. Sie können bequem von zu Hause aus lernen - und Sie brauchen keine Software zu installieren, da Sie unsere Online-Datenbank über Ihren Browser nutzen werden.

Übliche SQL-Aggregatfunktionen

Alle Beispiele in diesem Spickzettel verwenden die folgenden Daten, die in einer Tabelle namens orders.

departmentcustomeritemqtytot_valuedate_paid
125Kettle1152024-01-15
118Toaster440
216Mug12182024-01-22
325Desk4120
216Dinner Plate12242024-01-22
318Office Chair2362024-01-17
120Lamp345
210Cutlery Set1302024-01-22

SUMME()

Die Funktion SUM() gibt die Gesamtsumme einer Zahlenspalte zurück.

Beispiel:

SELECT SUM(tot_value) 
FROM orders;

Ergebnis:

SUM(tot_value)
328

Weitere Informationen zur Verwendung der Funktion SUM() finden Sie in unserem Kochbuch How to Sum Values of a Column in SQL.

Weitere Beispiele für die Funktion SUM() finden Sie in unserem Artikel SQL SUM() Function Explained with 5 Practical Examples.

AVG()

Die Funktion AVG() gibt den Durchschnittswert für eine Zahlenspalte zurück.

Beispiel:

SELECT AVG(qty) 
FROM orders;

Ergebnis:

AVG(qty)
4.875

Weitere Informationen über die Verwendung der Funktion AVG() finden Sie in unserem Kochbuch How to Find the Average of a Numeric Column in SQL.

Weitere Beispiele für die Verwendung der Funktion AVG() finden Sie in unserem Artikel The SQL AVG() Function Explained with Examples

ZAEHLEN()

Die Funktion COUNT() gibt die Anzahl der Zeilen (d.h. der Werte) in einer bestimmten Spalte zurück. Es gibt drei verschiedene Möglichkeiten, diese Funktion zu verwenden.

ZAEHLEN(*)

Diese Option gibt Ihnen die Gesamtzahl der von Ihrer Abfrage zurückgegebenen Zeilen.

Beispiel:

SELECT COUNT(*) 
FROM orders;

Ergebnis:

COUNT(*)
8

COUNT(spalten_name)

Mit dieser Option erhalten Sie die Anzahl der Zeilen in Ihrer Abfrage, in denen die genannte Spalte keinen Wert NULL enthält.

Beispiel:

Das Beispiel zeigt die Anzahl der Bestellungen, die bezahlt wurden, d.h. Bestellungen, bei denen date_paid nicht NULL ist.

SELECT COUNT(date_paid) 
FROM orders;

Ergebnis:

COUNT(date_paid)
5

COUNT(DISTINCT spalte_name)

Mit dieser Option erhalten Sie die Anzahl der eindeutigen Werte in der genannten Spalte.

Beispiel:

Wir wollen die Anzahl der verschiedenen Kunden anzeigen, die Bestellungen aufgegeben haben.

SELECT COUNT(DISTINCT customer) 
FROM orders;

Ergebnis:

COUNT(DISTINCT customer)
5

Weitere Informationen über die Funktion COUNT() finden Sie in unserem Kochbuch How to Count the Number of Rows in a Table in SQL.

Weitere Beispiele für die Verwendung der Funktion COUNT() finden Sie in unserem Artikel Die SQL-Funktion Count erklärt mit 7 Beispielen.

Weitere Informationen zur Verwendung von COUNT(DISTINCT) finden Sie unter How to Count Distinct Values in SQL

Weitere Informationen über den Unterschied zwischen COUNT(*), COUNT(column) und COUNT(DISTINCT) finden Sie unter Was ist der Unterschied zwischen COUNT(*), COUNT(1), COUNT(column) und COUNT(DISTINCT)?

MIN()

Die Funktion MIN() gibt den kleinsten Wert in einer Spalte zurück. Diese Funktion funktioniert mit den meisten Datentypen, einschließlich Zahlen, Zeichenketten (der erste in alphabetischer Reihenfolge) und Datumsangaben (d. h. das älteste Datum).

Beispiel:

SELECT MIN(tot_value) 
FROM orders;

Ergebnis:

MIN(tot_value)
15.00

Weitere Informationen zur Arbeit mit der Funktion MIN() finden Sie in unserem Kochbuch How to Find the Minimum Value of a Column in SQL.

Weitere Beispiele für die Funktion MIN() finden Sie in unserem Artikel SQL MIN und MAX Funktionen in 6 Beispielen erklärt.

MAX()

Die Funktion MAX() gibt den größten Wert in einer Spalte zurück. Diese Funktion funktioniert mit den meisten Datentypen, einschließlich Zahlen, Zeichenketten (die letzten in alphabetischer Reihenfolge) und Datumsangaben (d. h. das jüngste Datum).

Beispiel:

SELECT MAX(date_paid) 
FROM orders;

Ergebnis:

MAX(date_paid)
2024-01-24

Weitere Informationen zur Arbeit mit der Funktion MAX() finden Sie unter Wie man den Maximalwert einer numerischen Spalte in SQL findet.

Weitere Beispiele finden Sie unter SQL MIN- und MAX-Funktionen in 6 Beispielen erklärt.

Verwendung von SQL-Aggregatfunktionen mit GROUP BY

In den obigen Beispielen wurden die Aggregate über die gesamte Tabelle berechnet. Sie benötigen jedoch oft Aggregate, die in Gruppen aufgeteilt sind, z. B. um den Gesamtwert der Bestellungen nach Kunde oder die durchschnittliche Bestellmenge nach Abteilung zu berechnen.

In SQL erstellt die Klausel GROUP BY die Gruppen, die wir für die Aggregation verwenden. Diese Klausel unterdrückt einzelne Zeilen, so dass der Bericht eine Zeile pro definierter Gruppe enthält. Wenn Sie nach Kunden gruppieren, wird für jeden Kunden eine Zeile angezeigt. Diese Zeile enthält die zusammengefassten Informationen, die Sie angefordert haben. Sie können nach mehr als einem Kriterium gruppieren, z. B. können Sie Kunden nach ihrem geografischen Gebiet gruppieren, um Kunden innerhalb jedes Gebiets zu erhalten.

Weitere Informationen zur Gruppierung in SQL finden Sie in unserem Artikel GROUP BY in SQL erklärt.

Beispiel:

SELECT customer, SUM(tot_value)
FROM orders
GROUP BY customer;

Ergebnis:

customerSUM(tot_value)
1030.00
1642.00
1876.00
2045.00
25135.00

Die Spalte, nach der Sie gruppieren, muss in der Regel in Ihrer SELECT Liste enthalten sein, sonst ist die Ausgabe nicht sinnvoll. Die Liste SELECT kann nur die Spalte, nach der Sie gruppieren, Ihre Aggregatfunktionen und Literalwerte enthalten. Wenn eine Spalte aufgeführt wird, die nicht in einem Aggregat verwendet wird und nicht in der GROUP BY Klausel enthalten ist, erhalten Sie eine Fehlermeldung.

Sie können mehr als eine Aggregatfunktion in Ihre Abfrage aufnehmen und nach mehr als einer Spalte gruppieren. Führen Sie sie von der Haupt- zur Nebengruppe auf, getrennt durch Kommas.

Weitere Informationen finden Sie in diesen Artikeln:

Wenn Sie die Verwendung von Aggregaten mit Gruppen üben möchten, lesen Sie SQL-Praxis: 10 GROUP BY-Übungen mit detaillierten Lösungen.

Verwendung von SQL-Aggregatfunktionen zum Ordnen Ihrer Daten

Möglicherweise möchten Sie Ihre Ergebnisse auf der Grundlage einer Aggregatspalte ordnen. Da ORDER BY nach GROUP BY berechnet wird, können Sie Aggregatfunktionen direkt in der Klausel ORDER BY verwenden.

Beispiel:

Sie möchten die Bestellungen nach Kunden gruppieren und dann die Kunden nach dem Gesamtwert ihrer Bestellungen sortiert anzeigen; auf diese Weise erscheint der Kunde mit dem höchsten Wert an Bestellungen am Anfang der Liste.

SELECT customer, sum(tot_value)
FROM orders
GROUP BY customer
ORDER BY sum(tot_value) DESC;

Ergebnis:

customerSUM(tot_value)
25135.00
1876.00
2045.00
1642.00
1030.00

Sie können ein Aggregat in der ORDER BY -Klausel in genau demselben Format angeben, das Sie bei der Angabe in Ihrer Liste der auszuwählenden Spalten verwendet haben. Die DESC Klausel sortiert die Zeilen vom höchsten zum niedrigsten Wert.

Weitere Informationen über das Sortieren nach Aggregatfunktionen finden Sie in diesen SQL-Kochbüchern:

Verwenden von SQL-Aggregatfunktionen zum Filtern Ihrer Daten

Manchmal werden Sie nach einer Aggregatspalte filtern wollen. Um nach einem Aggregat zu filtern, verwenden Sie die HAVING Klausel. Optional können Sie diese Klausel in Verbindung mit der WHERE Klausel verwenden, um weitere Filter für Nicht-Aggregatspalten hinzuzufügen.

Beispiel:

Sie möchten eine Liste von Kunden, die mehr als einen bestimmten Warenwert bezahlt haben, um sie in Sonderangebote aufzunehmen.

SELECT customer, SUM(tot_value)
FROM orders
WHERE date_paid IS NOT NULL
GROUP BY customer
HAVING sum(tot_value) > 30
ORDER BY customer;

Ergebnis:

customerSUM(tot_value)
1642.00
1836.00

Um die Zeilen nach einer Aggregatfunktion zu filtern, müssen Sie die Klausel HAVING verwenden. Die Klausel HAVING folgt unmittelbar auf die Klausel GROUP BY. Optional können Sie auch eine WHERE -Klausel und eine ORDER BY -Klausel einfügen.

Weitere Informationen finden Sie in diesen SQL-Kochbüchern:

Über die SQL-Aggregatfunktionen hinaus Spickzettel

Wenn Sie Ihre SQL-Kenntnisse vertiefen möchten, sollten Sie sich unser Angebot an interaktiven SQL-Kursen ansehen. Wir bieten eine breite Palette von Kursen für verschiedene SQL-Kenntnisstufen an. Wir haben auch spezielle Kurse, die die Verwendung von SQL in der Datenanalyse behandeln.

Ich empfehle besonders unserenSQL-Praxis Lernpfad. Er enthält 9 Kurse, die sich auf eine umfassende SQL-Praxis konzentrieren, einschließlich SQL-JOINs und Aggregatfunktionen. Die Übungen werden mit realistischen Datensätzen durchgeführt, z. B. mit einer Datenbank für eine Universität und ein Geschäft. Wir veröffentlichen auch einen neuen SQL-Praxiskurs in unserem Monatliche SQL-Herausforderung -Track.

Sie können alle oben genannten Kurse und mehr mit unserem Alle für immer SQL Plan erhalten . Er gibt Ihnen lebenslangen Zugang zu allen aktuellen und zukünftigen Kursen auf unserer Plattform. Viel Spaß beim Lernen!