MariaDB
 sql >> Database >  >> RDS >> MariaDB

Funzione AVG() in MariaDB

In MariaDB, il AVG() La funzione restituisce il valore medio dell'espressione data.

Il DISTINCT l'opzione può essere utilizzata per restituire la media dei valori distinti (cioè rimuovere i duplicati prima di calcolare la media).

NULL i valori vengono ignorati.

Dati di esempio

Supponiamo di avere una tabella con i seguenti dati:

SELECT 
    VendorId,
    ProductName,
    ProductPrice 
FROM Products;

Risultato:

+----------+---------------------------------+--------------+
| 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 |
+----------+---------------------------------+--------------+

Esempio

Possiamo utilizzare la seguente query per ottenere la media di tutti i prezzi.

SELECT AVG(ProductPrice)
FROM Products;

Risultato:

52.898750

In questo caso, le informazioni sul prezzo sono memorizzate nel ProductPrice colonna, e quindi l'abbiamo passato come argomento a AVG() funzione, che quindi calcola la media e restituisce il risultato.

Risultati filtrati

Il AVG() La funzione opera sulle righe restituite dalla query. Quindi, se filtri i risultati, il risultato di AVG() lo rifletterà.

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

Risultato:

19.680000

In questo caso, 19.680000 è il prezzo medio di tutti i prodotti offerti dal venditore specificato.

Il DISTINCT Parola chiave

Puoi usare il DISTINCT parola chiave con AVG() calcolare solo valori distinti. Cioè, se sono presenti valori duplicati, vengono trattati come un valore.

Esempio:

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

Risultato:

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

In questo caso, due articoli condividono lo stesso prezzo (il cacciavite sinistro e il cacciavite destro hanno entrambi un prezzo di 25,99). Pertanto, il AVG() funzione, se usata con DISTINCT parola chiave, tratta entrambi i valori come uno e calcola il risultato di conseguenza.

Funzioni della finestra

Il AVG() la funzione può essere utilizzata nelle funzioni della finestra. Vedere SQL AVG() per principianti per un esempio di questo.