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

Sådan finder du gennemsnittet af en numerisk kolonne i SQL

Problem:

Du vil gerne beregne gennemsnittet af tal gemt i en kolonne.

Eksempel:

Vores database har en tabel med navnet sale med data i følgende kolonner:id , city , year og amount .

id by år beløb
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

Lad os beregne det gennemsnitlige salg, uanset by eller år.

Løsning:

SELECT AVG(amount) as avg_amount
FROM sale;

Her er resultatet:

avg_amount
19073.125000

Diskussion:

Hvis du gerne vil beregne gennemsnittet af numeriske værdier gemt i en kolonne, kan du gøre det ved at bruge AVG() aggregeret funktion; det tager som argument navnet på den kolonne, hvis gennemsnit du vil beregne. Hvis du ikke har angivet andre kolonner i SELECT klausul, vil gennemsnittet blive beregnet for alle poster i tabellen.

Selvfølgelig, da det er en samlet funktion, AVG() kan også bruges med grupper. For eksempel, hvis vi gerne vil finde det gennemsnitlige salg pr. by, kan vi skrive denne forespørgsel:

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

Gennemsnittet beregnes for hver by:

by beløb
Los Angeles 7400,850000
Chicago 30882.250000
Annandale 15045.516667

Derudover, hvis gennemsnittet skal afrundes, kan du videregive resultatet af AVG() funktion ind i ROUND() :

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

  1. Sådan rettes:Ingen passende driver fundet til jdbc:mysql://localhost/dbname-fejl ved brug af pools?

  2. Hvordan indsætter man flere poster og får identitetsværdien?

  3. CONVERT_TZ() Eksempler – MySQL

  4. Top 5 MySQL-overvågningsværktøjer