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.