Zurück zur Artikelliste Artikel
12 Leseminuten

SQL-Aggregat-Funktionen: Ein umfassender Leitfaden für Einsteiger

Sind Sie neugierig auf SQL-Aggregatfunktionen und deren Anwendung in realen Szenarien? In diesem Artikel erläutern wir die SQL-Aggregatfunktionen, zeigen Beispiele aus der Praxis und geben Ihnen wertvolle Hinweise, wie Sie sie beherrschen können.

Bei der Datenaggregation werden mehrere Datenzeilen zu einem einzigen Ergebnis oder einer Zusammenfassung verdichtet. Bei großen Datensätzen ist dies von unschätzbarem Wert, denn es ermöglicht Ihnen, relevante Erkenntnisse zu gewinnen, ohne jeden einzelnen Datenpunkt genau untersuchen zu müssen.

Was genau sind also SQL-Aggregatfunktionen? Es handelt sich um spezialisierte Funktionen, die Berechnungen mit Gruppen von Variablen durchführen und ein einziges Ergebnis zurückgeben. Im Gegensatz zu herkömmlichen Funktionen arbeiten Aggregatfunktionen mit Gruppen von Datenzeilen. So können Sie effizient Statistiken berechnen oder zusammenfassende Informationen aus einem Datensatz generieren.

In diesem Artikel werden wir uns mit der Bedeutung der SQL-Aggregatfunktionen und ihrer Verwendung befassen. Wir werden sie anhand von Beispielen aus der Praxis erläutern. Klingt interessant, oder? Dann schauen Sie sich unseren Kurs über Standard-SQL-Funktionen. Er ist ein guter Ausgangspunkt, um zu lernen, wie man Daten mit den am häufigsten verwendeten SQL-Funktionen verarbeitet!

Gemeinsame SQL-Aggregatfunktionen erforschen

In der Welt von SQL sind Aggregatfunktionen wichtige Werkzeuge für eine effiziente Datenzusammenfassung und -analyse. Sie haben die einzigartige Fähigkeit, große Datenmengen in aussagekräftige Erkenntnisse zu destillieren, statistische Analysen zu erleichtern und komplexe Datenstrukturen zu vereinfachen.

Die am häufigsten verwendeten SQL-Aggregatfunktionen sind:

  • SUM()
  • COUNT()
  • AVG()
  • MIN()
  • MAX()

Im Folgenden werden wir jede von ihnen näher betrachten.

1. SUM()

Die Funktion SUM( ) gibt die Summe einer numerischen Spalte zurück. Sie wird in der Regel verwendet, wenn Sie die Summe von Werten wie Verkaufseinnahmen, Mengen oder Ausgaben ermitteln müssen.

Stellen Sie sich vor, Sie möchten die gesamten Verkaufseinnahmen Ihres Unternehmens ermitteln; dazu können Sie die folgende Abfrage ausführen:

SELECT SUM(sales_amount) as total_revenue
FROM sales_data;

2. COUNT()

Als nächstes folgt die Funktion COUNT(). Das Ziel dieser Funktion ist es, die Anzahl der Zeilen in einer Tabelle oder die Anzahl der Nicht-Null-Werte in einer Spalte zu zählen.

Angenommen, Sie möchten herausfinden, wie viele Produkte in Ihrem Geschäft verkauft werden, können Sie die folgende Abfrage verwenden:

SELECT COUNT(*) as total_products
FROM products;

In dieser Abfrage verwenden wir das Sternchen (*), um alle Spalten anzuzeigen. Und wir zählen alle Zeilen in der Abfrage.

3. AVG()

Wenn Sie den Durchschnittswert (Mittelwert) einer numerischen Spalte berechnen müssen, ist die Funktion AVG() das Mittel der Wahl. Sie ist nützlich, wenn Sie nach dem Durchschnittspreis, der Bewertung, den verkauften Einheiten usw. suchen. Diese Abfrage wäre zum Beispiel nützlich, wenn Sie einen abonnementbasierten Streamingdienst betreiben und die durchschnittliche Dauer der Benutzersitzungen auf Ihrer Plattform ermitteln möchten:

SELECT AVG(session_duration) as average_session_duration
FROM user_sessions;

4. MIN()

Die Funktion MIN() gibt den kleinsten Wert innerhalb einer Spalte zurück. Sie ist besonders nützlich, um den niedrigsten oder kleinsten Wert in einem Datensatz ausfindig zu machen.

Nehmen wir an, ein Manager versucht, die schnellste Antwortzeit auf eine Kundenfrage für Support-Tickets zu ermitteln; die folgende Abfrage kann die Antwort liefern:

SELECT MIN(response_time) as shortest_response_time
FROM customer_support_tickets;

5. MAX()

Andererseits gibt die Funktion MAX() den größten Wert innerhalb einer Spalte zurück. Sie ist nützlich, um den höchsten Wert in einem Datensatz zu ermitteln.

Angenommen, Sie besitzen eine E-Commerce-Website und möchten den höchsten Bestellwert erfahren, den ein Kunde in Ihrem Online-Shop aufgegeben hat. Dies ist die Abfrage, die Sie schreiben würden:

SELECT MAX(order_value) as max_order_value
FROM customer_orders;

Weitere Beispiele für die Funktionen MIN() und MAX() finden Sie unter SQL MIN() and MAX() Functions Explained.

Aggregieren von Daten in SQL

Nachdem wir uns nun einige der am häufigsten verwendeten SQL-Aggregatfunktionen angesehen haben, wollen wir uns das Konzept der Datenaggregation in SQL genauer ansehen.

Die Datenaggregation ist eine leistungsstarke Technik zur Zusammenfassung und Analyse von Informationen aus einem Datensatz. Sie ermöglicht es Ihnen, nützliche Erkenntnisse zu gewinnen, indem Sie Berechnungen auf Gruppierungen von verknüpften Daten durchführen, wodurch die zeitaufwändige Prüfung einzelner Datensätze entfällt.

Um dieses Konzept zu verdeutlichen, betrachten Sie die folgenden Anwendungsfälle aus der Praxis:

  • Verkäufe: Für einen Ladenbesitzer ist es wichtig zu verstehen, wie verschiedene Produktkategorien zum Gesamtumsatz beitragen. Sie können ermitteln, welche Produktkategorie den größten Umsatz macht, indem Sie die Umsatzdaten für jede Produktkategorie zusammenfassen.
  • Schülernoten: Wenn Sie ein Lehrer sind, möchten Sie vielleicht die Durchschnittsnote für jedes Fach in Ihrer Klasse herausfinden. Durch die Zusammenfassung von Schülerdaten können Sie Durchschnittswerte für die einzelnen Fächer ermitteln und Bereiche mit Verbesserungsbedarf identifizieren.
  • Website-Verkehr: Angenommen, Sie betreiben eine Website und möchten wissen, welche Seiten am meisten besucht werden. Durch die Zusammenstellung von Statistiken über den Website-Verkehr können Sie die beliebtesten Seiten ermitteln und die Ressourcen effektiver verwalten.
  • Mitarbeitergehälter: Stellen Sie sich vor, Sie sind Personalleiter in einem Unternehmen und suchen nach Informationen über die Gehälter in den verschiedenen Abteilungen. Mit SQL können Sie die Daten für jede Abteilung aggregieren und analysieren.

Entfaltung der Leistungsfähigkeit von SQL-Aggregatfunktionen mit GROUP BY

Die Verwendung der Aggregatfunktionen von SQL bedeutet in den meisten Fällen die Verwendung der GROUP BY-Klausel. Mit dieser leistungsstarken Kombination können Sie Aggregatberechnungen für bestimmte Datengruppierungen in Ihrem Datensatz durchführen.

Die SQL-Klausel GROUP BY unterteilt Ihren Datensatz in Gruppen, die auf übereinstimmenden Werten in einer oder mehreren Spalten basieren; so können Sie Aggregatfunktionen unabhängig auf jede Gruppe anwenden. Im Folgenden finden Sie einen Überblick über die GROUP BY Syntax:

SELECT 
  column1, 
  column2, 
  aggregate_function(column3)
FROM table_name
GROUP BY column1, column2;

In dieser Abfrage werden Daten mit übereinstimmenden Werten in column1 und column2 zu den Gruppen; aggregate_function(column3) ist die Aggregatfunktion, die Sie auf die Werte von column3 innerhalb jeder Gruppe anwenden möchten. Sehen wir uns ein paar Beispiele an.

Beispiel 1: Gruppieren nach Stadt und Berechnen des Durchschnittsgehalts

Stellen Sie sich vor, Sie haben eine Mitarbeiterdatenbank, die Informationen über die Namen, Städte und Gehälter der Mitarbeiter enthält. Sie möchten herausfinden, wie hoch das Durchschnittsgehalt in jeder Stadt ist. Dies können Sie mit der folgenden Abfrage erreichen:

SELECT 
  city, 
  AVG(salary) as average_salary
FROM employee_data
GROUP BY city;

Gehen wir die Abfrage nun Schritt für Schritt durch:

Schritt 1: Gruppierung nach Stadt

Die Datenbank beginnt den Prozess mit der Einteilung der Mitarbeiter in Gruppen auf der Grundlage ihres Wohnortes. Jede Stadtgruppe wird im Folgenden durch eine andere Farbe dargestellt:

  • Gruppe 1: New York (Gelb)
  • Gruppe 2: San Francisco (Rot)
  • Gruppe 3: Los Angeles (Grün)
employee_namecitysalary
JohnNew York60000
JaneNew York55000
BobSan Francisco70000
AliceSan Francisco72000
MikeLos Angeles62000
EmilyLos Angeles64000

Schritt 2: Berechnung der Durchschnittsgehälter

Innerhalb jeder Stadtgruppe berechnet die Datenbank das Durchschnittsgehalt, indem sie die Aggregatfunktion AVG() auf die Spalte salary anwendet.

Endgültiges Ergebnis:

Diese SQL-Abfrage liefert das Durchschnittsgehalt für jede Stadt, wie unten dargestellt. Die Ausführung dieser Abfrage bietet wertvolle Einblicke in Vergütungstrends und -unterschiede in den Städten, in denen Ihre Mitarbeiter wohnen. Diese Erkenntnisse können Ihnen helfen, fundierte Entscheidungen über Gehaltsanpassungen, Lebenshaltungskosten usw. zu treffen.

cityaverage_sale
New York57500
San Francisco71000
Los Angeles63000

Beispiel 2: Gruppieren nach Produktkategorie und Ermitteln des Gesamtumsatzes

Angenommen, Sie haben einen Verkaufsdatensatz mit Produktkategorien und Verkaufsmengen. Ihr Ziel ist es, den Gesamtumsatz für jede Produktkategorie zu ermitteln. Hier ist die Abfrage:

SELECT 
  product_category, 
  SUM(sales_amount) as total_sales
FROM sales_data
GROUP BY product_category;

Diese Abfrage gruppiert die Verkaufsdaten nach Produktkategorie und berechnet die Gesamtverkaufsmengen für jede Gruppe. Sie liefert nützliche Erkenntnisse über die profitabelsten Produktkategorien. Weitere Beispiele für diese Kombination finden Sie in Wie man SUM() mit GROUP BY verwendet: Ein detaillierter Leitfaden mit 8 Beispielen.

Beispiel 3: Gruppierung nach Jahr und Monat zum Zählen der Bestellungen

Angenommen, Sie betreiben eine E-Commerce-Plattform mit einer Datenbank, die Bestelldaten enthält. Sie möchten die Anzahl der Bestellungen pro Jahr und Monat verfolgen. Mit der folgenden Abfrage können Sie dies erreichen:

SELECT 
  EXTRACT(YEAR FROM order_date) as order_year, 
  EXTRACT(MONTH FROM order_date) as order_month, 
  COUNT(*) as order_count
FROM orders
GROUP BY order_year, order_month
ORDER BY order_year, order_month;

Diese Abfrage gruppiert die Bestellungen nach Jahr und Monat und liefert eine Zeitleiste der Bestellzahlen. Sie ist sehr nützlich, um saisonale Veränderungen zu verfolgen und die monatlichen Bestellzahlen zu schätzen. Ähnliche Beispiele aus der Praxis finden Sie in Wie man COUNT() mit GROUP BY verwendet: 5 praktische Beispiele.

In jedem dieser Beispiele teilt die Klausel GROUP BY die Daten in Gruppen auf der Grundlage bestimmter Spalten auf, und die Aggregatfunktionen (AVG(), SUM() und COUNT()) führen Berechnungen für jede Gruppe durch. Weitere Beispiele finden Sie in unserem Artikel Verwendung von GROUP BY in SQL.

Beispiele aus der Praxis für die Verwendung von SQL-Aggregatfunktionen

Nachdem wir nun die Grundlagen der Aggregatfunktionen und der GROUP BY-Klausel behandelt haben, sehen wir uns an, wie wir sie in weiteren Beispielen aus der Praxis einsetzen können.

1. gruppieren nach Produktkategorien für Vertriebseinblicke

Stellen Sie sich vor, Sie haben eine Verkaufsdatenbank und möchten das jüngste Bestelldatum für jede Produktkategorie finden. Um dies zu erreichen, müssen wir die Daten nach der Spalte product_category gruppieren und die Funktion MAX() verwenden, um das jüngste (d. h. größte) Bestelldatum auszuwählen:

SELECT 
  product_category, 
  MAX(order_date) as most_recent_order_date
FROM sales_data
GROUP BY product_category;

Die Analyse des jüngsten Bestelldatums für jede Produktkategorie hilft bei der Ermittlung der aktuellen Markttrends und der Produktnachfrage.

2. Analyse der Verkäufe nach Produktkategorie und Jahr

Für eine umfassendere Analyse kann es erforderlich sein, Daten nach mehreren Spalten zu gruppieren. Nehmen wir zum Beispiel an, Sie benötigen die Gesamtverkäufe für jede Produktkategorie und jedes Jahr. Hier ist die Abfrage:

SELECT 
  product_category, 
  EXTRACT(YEAR FROM order_date) as sales_year, 
  SUM(sales_amount) as total_sales
FROM sales_data
GROUP BY product_category, sales_year;

Diese Abfrage gruppiert die Daten nach zwei Spalten, so dass wir die Verkäufe sowohl nach Produktkategorie als auch nach Jahr analysieren können und somit einen detaillierteren und detaillierteren Einblick erhalten.

3. Filtern von Produktkategorien mit hohen Umsätzen

Möglicherweise müssen Sie Gruppen in Abhängigkeit von der Ausgabe einer Aggregatfunktion filtern. In solchen Fällen ist die HAVING Klausel genau das Richtige für Sie. Angenommen, Sie möchten Produktkategorien mit einem Gesamtumsatz von mehr als 10.000 US-Dollar finden:

SELECT 
  product_category, 
  SUM(sales_amount) as total_sales
FROM sales_data
GROUP BY product_category
HAVING SUM(sales_amount) > 10000;

Die Klausel HAVING filtert die gruppierten Ergebnisse und zeigt diejenigen Produktkategorien an, deren Gesamtumsatz über dem angegebenen Schwellenwert liegt.

Es ist wichtig zu beachten, dass Aggregatfunktionen nicht in der WHERE Klausel verwendet werden können. Aggregatfunktionen wirken auf Daten, die mit der Klausel GROUP BY gruppiert wurden, während die Klausel WHERE einzelne Zeilen filtert, bevor sie gruppiert werden.

4. Zählen eindeutiger Kunden

Das Zählen eindeutiger Werte in einer Spalte ist für verschiedene Analysen unerlässlich. Sie könnten zum Beispiel die Anzahl der eindeutigen Kunden ermitteln wollen:

SELECT 
  COUNT(DISTINCT customer_id) as unique_customers
FROM sales_data;

Diese Abfrage zählt die Anzahl der eindeutigen Kunden-IDs in den Verkaufsdaten, was bei der Arbeit mit Datensätzen, die Duplikate enthalten, nützlich sein kann.

5. Unterscheidung der COUNT()-Funktionen für genaue Berichte

Es ist wichtig, den Unterschied zwischen COUNT(*) und COUNT(expression) zu verstehen. COUNT(*) zählt alle Zeilen in einer Gruppe, während COUNT(expression) nur die nichtNULL Werte des übergebenen Ausdrucks innerhalb einer Gruppe zählt. NULL Werte stehen für fehlende oder unbekannte Daten in einem Datensatz.

Schauen wir uns ein Beispiel an:

SELECT product_category,
       COUNT(*) as total_orders,
       COUNT(discount) as discounted_orders
FROM sales_data
GROUP BY product_category;

Hier zählt COUNT(*) alle Bestellungen in jeder Produktkategorie, einschließlich derjenigen mit NULL Werten in der Spalte "Rabatt". COUNT(discount) hingegen zählt nur Bestellungen mit nichtNULL Werten in der Spalte discount innerhalb jeder Kategorie. In unserem Artikel Was ist der Unterschied zwischen COUNT(*), COUNT(1), COUNT(Spaltenname) und COUNT(DISTINCT Spaltenname)? finden Sie weitere Beispiele für die Verwendung der Funktion COUNT().

6. Umfassende Einblicke in Produktkategorien gewinnen

Mit SQL können Sie zahlreiche Aggregatfunktionen in einer einzigen Abfrage verwenden, um sich ein vollständiges Bild von Ihren Daten zu machen. Lassen Sie uns zum Beispiel den Gesamtumsatz, den Durchschnittspreis und den Mindestpreis für jede Produktkategorie ermitteln:

SELECT product_category,
       SUM(sales_amount) as total_sales,
       AVG(product_price) as avg_price,
       MIN(product_price) as min_price
FROM sales_data
GROUP BY product_category;

Diese Abfrage extrahiert effektiv mehrere Erkenntnisse aus Ihren Daten und liefert gleichzeitig eine prägnante Zusammenfassung.

SQL-Aggregat-Funktion FAQ

Lassen Sie uns zum Abschluss noch einige häufig gestellte Fragen zu SQL-Aggregatfunktionen beantworten:

Kann ich zwei Aggregatfunktionen in einer Abfrage verwenden?

Ja. Wie in den vorherigen Beispielen gezeigt, können Sie mehrere Aggregatfunktionen in einer einzigen SQL-Abfrage verwenden. Wenn Sie mehrere Aggregatfunktionen verwenden, erhalten Sie einen umfassenderen Überblick über Ihre Daten. Um beispielsweise ein besseres Verständnis der Einkommensverteilung zu erhalten, möchten Sie vielleicht nicht nur das Durchschnittsgehalt in einer Abteilung berechnen, sondern auch das Höchst- und Mindestgehalt.

Zusätzlich zu den allgemeinen Aggregatfunktionen, die wir besprochen haben, bieten SQL-Datenbanken oft spezialisierte Aggregatfunktionen, die auf bestimmte Anforderungen zugeschnitten sind. SQL Server enthält beispielsweise die Funktion STRING_AGG() für die Verkettung von Zeichenfolgen innerhalb einer Gruppe. Bei der Arbeit an Projekten mit einzigartigen Datenverarbeitungsanforderungen können diese spezialisierten Funktionen unverzichtbar sein.

Q. Wie kann ich mithilfe eines bedingten Ausdrucks Zeilen zählen?

In SQL können bedingte Ausdrücke - im Allgemeinen mit der Anweisung CASE WHEN implementiert - verwendet werden, um Zeilen auf der Grundlage bestimmter Bedingungen zu zählen. Sie können zum Beispiel die Anzahl der Bestellungen mit einem Gesamtumsatz von über 1.000 $ zählen:

SELECT 
  COUNT(CASE WHEN sales_amount > 1000 THEN 1 ELSE NULL END) as high_value_orders
FROM sales_data;

Weitere Beispiele für ähnliche Abfragen und die erweiterte Verwendung von bedingten Ausdrücken finden Sie in unserem Artikel Wie man CASE WHEN in GROUP BY verwendet.

Q. Warum sind Aggregatfunktionen in GROUP BY nicht erlaubt?

Aggregatfunktionen sind in GROUP BY nicht zulässig, da sie mit gruppierten Daten arbeiten. GROUP BY ist dazu gedacht, Zeilen nach bestimmten Kriterien zu gruppieren, während Aggregatfunktionen Zeilen zu einem einzigen Wert zusammenfassen. Eine Vermischung dieser beiden Funktionen würde zu Mehrdeutigkeit führen und es schwierig machen, zu entscheiden, wie die Daten korrekt gruppiert und aggregiert werden sollen.

Q. Warum sollte ich die HAVING-Klausel mit Aggregatfunktionen in SQL verwenden?

In SQL-Abfragen, die Aggregatfunktionen enthalten, wird die Klausel HAVING verwendet, um die Ergebnisse auf der Grundlage des Ergebnisses der Aggregatfunktion zu filtern. Sie ermöglicht es Ihnen, Bedingungen auf Gruppierungen von Daten anzuwenden, nachdem diese aggregiert wurden. Wenn Sie zum Beispiel nur Abteilungen mit einem Durchschnittsgehalt von 50.000 $ oder mehr erhalten möchten, können Sie die HAVING Klausel verwenden, um die gruppierten Ergebnisse entsprechend zu filtern.

SELECT 
  department,
  AVG(salary) as average_salary
FROM employee_data
GROUP BY department
HAVING AVG(salary) >= 50000;

Q. Wie kann ich mehr über SQL-Aggregatfunktionen erfahren?

Um Ihr Verständnis der SQL-Aggregatfunktionen und ihrer praktischen Anwendungen zu vertiefen, sollten Sie Online-Kurse besuchen, die SQL-Dokumentation lesen und mit realen Datensätzen üben. Der Standard-SQL-Funktionen Der Kurs erklärt die Verwendung von SQL-Funktionen für verschiedene Datentypen und enthält 211 interaktive Aufgaben, mit denen Sie viel üben können!

SQL-Aggregat-Funktionen: Entfesselte Dateneinblicke

Zusammenfassend lässt sich sagen, dass die SQL-Aggregatfunktionen leistungsstarke Werkzeuge für die Zusammenfassung und Auswertung von Daten in relationalen Datenbanken sind. Ganz gleich, ob Sie ein SQL-Neuling oder ein erfahrener Benutzer sind - wenn Sie wissen, wie man Aggregatfunktionen effektiv einsetzt, können Sie nützliche Erkenntnisse aus Ihren Daten ziehen, datengestützte Entscheidungen treffen und letztendlich Ihre Unternehmensleistung verbessern.

Der Erwerb von SQL-Kenntnissen kann auf dem heutigen datengesteuerten Geschäftsmarkt einen Wettbewerbsvorteil darstellen. Wenn Sie tief in SQL eintauchen wollen, empfehle ich Ihnen unser Alle für immer SQL-Paket. Dieses Angebot enthält alle aktuellen und zukünftigen SQL-Kurse in vier verschiedenen SQL-Dialekten. Hier sind einige weitere Highlights aus unserem Angebot:

  • SQL von A bis Z. Die sieben Kurse und fast 900 Übungen dieses Pakets bieten einen kompletten Lernpfad für modernes SQL, von den Grundlagen bis zu fortgeschrittenen Konzepten.
  • SQL-Praxis. Dieser Kurs ist für diejenigen gedacht, die eine Menge interaktiver SQL-Übungen suchen. Er enthält neun interaktive Kurse und über 800 praktische Übungen - und es kommen ständig neue hinzu.
  • Monatlich SQL-Praxis. Jeden Monat veröffentlichen wir einen neuen SQL-Übungskurs für Anfänger und Fortgeschrittene.

Viel Spaß beim Lernen!