MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

AVG()-Funktion in MariaDB

In MariaDB der AVG() Die Funktion gibt den Durchschnittswert des angegebenen Ausdrucks zurück.

Der DISTINCT kann verwendet werden, um den Durchschnitt der unterschiedlichen Werte zurückzugeben (d. h. Duplikate entfernen, bevor der Durchschnitt berechnet wird).

NULL Werte werden ignoriert.

Beispieldaten

Angenommen, wir haben eine Tabelle mit den folgenden Daten:

SELECT 
    VendorId,
    ProductName,
    ProductPrice 
FROM Products;

Ergebnis:

+----------+---------------------------------+--------------+
| VendorId | ProductName                     | ProductPrice |
+----------+---------------------------------+--------------+
|     1001 | Left handed screwdriver         |        25.99 |
|     1001 | Right handed screwdriver        |        25.99 |
|     1001 | Long Weight (blue)              |        14.75 |
|     1001 | Long Weight (green)             |        11.99 |
|     1002 | Sledge Hammer                   |        33.49 |
|     1003 | Chainsaw                        |       245.00 |
|     1003 | Straw Dog Box                   |        55.99 |
|     1004 | Bottomless Coffee Mugs (4 Pack) |         9.99 |
+----------+---------------------------------+--------------+

Beispiel

Wir können die folgende Abfrage verwenden, um den Durchschnitt aller Preise zu erhalten.

SELECT AVG(ProductPrice)
FROM Products;

Ergebnis:

52.898750

In diesem Fall werden Preisinformationen im ProductPrice gespeichert Spalte, und so haben wir das als Argument an AVG() übergeben Funktion, die dann den Durchschnitt berechnet und das Ergebnis zurückgibt.

Gefilterte Ergebnisse

Der AVG() Die Funktion arbeitet mit den von der Abfrage zurückgegebenen Zeilen. Wenn Sie also die Ergebnisse filtern, wird das Ergebnis von AVG() angezeigt wird das widerspiegeln.

SELECT AVG(ProductPrice)
FROM Products
WHERE VendorId = 1001;

Ergebnis:

19.680000

In diesem Fall ist 19,680000 der Durchschnittspreis aller vom angegebenen Anbieter angebotenen Produkte.

Der DISTINCT Schlüsselwort

Sie können den DISTINCT verwenden Stichwort mit AVG() nur unterschiedliche Werte zu berechnen. Das heißt, wenn doppelte Werte vorhanden sind, werden sie als ein Wert behandelt.

Beispiel:

SELECT 
    AVG(ProductPrice) AS "All",
    AVG(DISTINCT ProductPrice) AS "Distinct"
FROM Products;

Ergebnis:

+-----------+-----------+
| All       | Distinct  |
+-----------+-----------+
| 52.898750 | 56.742857 |
+-----------+-----------+

In diesem Fall teilen sich zwei Artikel den gleichen Preis (der Linkshänder-Schraubendreher und der Rechtshänder-Schraubendreher kosten beide 25,99). Daher der AVG() Funktion, wenn sie mit DISTINCT verwendet wird Schlüsselwort, behandelt beide Werte als einen und berechnet das Ergebnis entsprechend.

Fensterfunktionen

Der AVG() Funktion kann in Fensterfunktionen verwendet werden. Siehe SQL AVG() für Anfänger als Beispiel.