SQL-Aggregatfunktionen verstehen
Emily Parker
Product Engineer · Leapcell

Key Takeaways
- SQL-Aggregatfunktionen fassen große Datensätze mit einfachen Befehlen zusammen.
GROUP BY
undHAVING
verbessern die Aggregatanalyse.- Aggregatfunktionen ignorieren normalerweise NULL-Werte.
Einführung
Aggregatfunktionen in SQL verarbeiten eine Menge von Werten und geben ein einzelnes zusammengefasstes Ergebnis zurück. Diese sind wesentliche Werkzeuge zum Analysieren und Zusammenfassen von Daten in relationalen Datenbanken.
Häufig verwendete Aggregatfunktionen
1. COUNT()
-
Definition: Gibt die Anzahl der Zeilen zurück.
-
Varianten:
COUNT(*)
: Alle Zeilen, einschließlich derer mit NULL-Werten.COUNT(column)
: Nur Nicht-NULL-Werte.COUNT(DISTINCT column)
: Anzahl der eindeutigen Nicht-NULL-Einträge.
-
Beispiel:
SELECT COUNT(*) AS TotalOrders FROM Orders;
2. SUM()
-
Definition: Berechnet die Summe der numerischen Werte.
-
Behandlung von NULL-Werten: Ignoriert diese.
-
Beispiel:
SELECT SUM(amount) AS TotalRevenue FROM Sales;
3. AVG()
-
Definition: Berechnet den Durchschnitt (Mittelwert) der numerischen Werte.
-
Berechnung:
SUM / COUNT
der Nicht-NULL-Werte. -
Beispiel:
SELECT AVG(salary) AS AvgSalary FROM Employees;
4. MIN()
und MAX()
-
Definition:
MIN()
: Kleinster Wert in einer Spalte.MAX()
: Größter Wert in einer Spalte.
-
Beispiele:
SELECT MIN(salary) AS LowestSalary, MAX(salary) AS HighestSalary FROM Employees;
Arbeiten mit GROUP BY
Aggregatfunktionen sind am leistungsstärksten, wenn sie mit GROUP BY
kombiniert werden, was Zeilen basierend auf einer oder mehreren Spalten gruppiert, bevor die Funktion angewendet wird.
Beispiel: Summe der Einheiten nach Produkt und Standort
SELECT product, location, SUM(units) AS total_units FROM Sales GROUP BY product, location;
Filtern mit HAVING
Die HAVING
-Klausel filtert Gruppen basierend auf Aggregatergebnissen (im Gegensatz zu WHERE
, die Zeilen vor der Aggregation filtert).
Beispiel: Abteilungen mit durchschnittlichem Gehalt über 600
SELECT department, AVG(salary) AS avg_salary FROM Employees GROUP BY department HAVING AVG(salary) > 600;
NULL-Behandlung
Mit Ausnahme von COUNT(*)
ignorieren Aggregatfunktionen standardmäßig NULL-Werte. Dies stellt sicher, dass Zusammenfassungen nicht durch fehlende Daten verzerrt werden.
Erweiterte Aggregatfunktionen
Viele RDBMS unterstützen erweiterte Optionen, wie zum Beispiel:
VARIANCE()
,STDDEV()
– statistische MesswerteGROUPING_ID()
,LISTAGG()
,STRING_AGG()
– Gruppierungsmetadaten oder das Verketten von Zeichenketten- Alle vorhandenen Aggregate unterstützen die
OVER()
-Klausel für Fensterfunktionen
Anwendungsfallbeispiel
Angenommen, es gibt eine Orders
-Tabelle:
SELECT customer, COUNT(*) AS order_count, SUM(total_amount) AS total_spent, AVG(total_amount) AS avg_order_value, MIN(total_amount) AS min_order, MAX(total_amount) AS max_order FROM Orders GROUP BY customer HAVING SUM(total_amount) > 1000;
Diese Abfrage fasst Schlüsselmetriken pro Kunde zusammen und filtert dann, um nur diejenigen mit Gesamtausgaben über 1.000 anzuzeigen.
Fazit
Aggregatfunktionen (COUNT
, SUM
, AVG
, MIN
, MAX
usw.) sind grundlegend in SQL, um große Datensätze zusammenzufassen. In Kombination mit GROUP BY
und gefiltert mit HAVING
beantworten sie wesentliche analytische Fragen wie Summen, Durchschnitte, Extreme und Zählungen.
FAQs
Das sind Funktionen, die zusammengefasste Daten aus mehreren Zeilen zurückgeben.
Es gruppiert Zeilen, sodass Aggregate für jede Gruppe berechnet werden.
Mit Ausnahme von COUNT(*) ignorieren die meisten Aggregatfunktionen NULL-Werte.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Backend-Projekten.
Leapcell ist die Serverlose Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Unterstützung mehrerer Sprachen
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Reaktionszeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollständig automatisierte CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für umsetzbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Kein operativer Overhead – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ