SQL AVG()-Funktion
Die SQL AVG()-Funktion
Die Funktion AVG() gibt den Durchschnittswert einer numerischen Spalte zurück.
Beispiel
Finden Sie den Durchschnittspreis aller Produkte:
SELECT AVG(Price)
FROM Products;
Try it Yourself »
Hinweis: NULL-Werte werden ignoriert.
Syntax
SELECT AVG(column_name)
FROM table_name
WHERE condition;
Demo-Datenbank
Nachfolgend finden Sie eine Auswahl aus der in den Beispielen verwendeten Tabelle Products:
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
Hinzufügen einer Where-Klausel
Sie können eine WHERE-Klausel hinzufügen, um Bedingungen anzugeben:
Beispiel
Gibt den Durchschnittspreis der Produkte in Kategorie 1 zurück:
SELECT AVG(Price)
FROM Products
WHERE CategoryID = 1;
Try it Yourself »
Verwenden Sie einen Alias
Geben Sie der AVG-Spalte mithilfe des Schlüsselworts AS einen Namen.
Beispiel
Benennen Sie die Spalte "average price":
SELECT AVG(Price) AS [average price]
FROM Products;
Try it Yourself »
Überdurchschnittlich
Um alle Datensätze mit einem höheren Preis als dem Durchschnitt aufzulisten, können wir die Funktion AVG() in einer Unterabfrage verwenden:
Beispiel
Alle Produkte mit einem höheren Preis als dem Durchschnittspreis zurückgeben:
SELECT * FROM Products
WHERE price > (SELECT AVG(price) FROM Products);
Try it Yourself »
Verwenden Sie AVG() mit GROUP BY
Hier verwenden wir die Funktion AVG() und die Klausel GROUP BY, um den Durchschnittspreis für jede Kategorie in der Tabelle „Produkte“ zurückzugeben:
Beispiel
SELECT AVG(Price) AS AveragePrice, CategoryID
FROM Products
GROUP BY CategoryID;
Try it Yourself »
Später in diesem Tutorial erfahren Sie mehr über die Klausel GROUP BY.