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

Come trovare la media di una colonna numerica in SQL

Problema:

Vuoi calcolare la media dei numeri memorizzati in una colonna.

Esempio:

Il nostro database ha una tabella denominata sale con i dati nelle seguenti colonne:id , city , year e amount .

anno
id città importo
1 Los Angeles 2017 2345.50
2 Chicago 2018 1345.46
3 Annandale 2016 900,56
4 Annandale 2017 23230.22
5 Los Angeles 2018 12456.20
6 Chicago 2017 89000.40
7 Annandale 2018 21005.77
8 Chicago 2016 2300.89

Calcoliamo le vendite medie, indipendentemente dalla città o dall'anno.

Soluzione:

SELECT AVG(amount) as avg_amount
FROM sale;

Ecco il risultato:

importo_media
19073.125000

Discussione:

Se desideri calcolare la media dei valori numerici memorizzati in una colonna, puoi farlo utilizzando il AVG() funzione aggregata; prende come argomento il nome della colonna di cui si vuole calcolare la media. Se non hai specificato altre colonne in SELECT clausola, verrà calcolata la media per tutti i record nella tabella.

Naturalmente, poiché è una funzione aggregata, AVG() può essere utilizzato anche con i gruppi. Ad esempio, se desideriamo trovare la vendita media per città, possiamo scrivere questa query:

SELECT city, AVG(amount) as avg_amount
FROM sale
GROUP BY city;

La media è calcolata per ogni città:

città importo
Los Angeles 7400.850000
Chicago 30882.250000
Annandale 15045.516667

Inoltre, se la media deve essere arrotondata, puoi passare il risultato di AVG() funzione in ROUND() :

SELECT city, 
  ROUND(AVG(amount), 2) as avg_amount
FROM sale
GROUP BY city;