sql >> Databasteknik >  >> RDS >> Database

Hur man hittar medelvärdet för en numerisk kolumn i SQL

Problem:

Du vill beräkna genomsnittet av siffror som lagras i en kolumn.

Exempel:

Vår databas har en tabell som heter sale med data i följande kolumner:id , city , year och amount .

id stad år belopp
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

Låt oss beräkna den genomsnittliga försäljningen, oavsett stad eller år.

Lösning:

SELECT AVG(amount) as avg_amount
FROM sale;

Här är resultatet:

avg_amount
19073.125000

Diskussion:

Om du vill beräkna medelvärdet av numeriska värden lagrade i en kolumn kan du göra det med AVG() aggregerad funktion; det tar som argument namnet på den kolumn vars medelvärde du vill beräkna. Om du inte har angett några andra kolumner i SELECT klausul kommer genomsnittet att beräknas för alla poster i tabellen.

Naturligtvis, eftersom det är en aggregerad funktion, AVG() kan även användas med grupper. Om vi ​​till exempel vill hitta den genomsnittliga försäljningen per stad kan vi skriva den här frågan:

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

Genomsnittet beräknas för varje stad:

stad belopp
Los Angeles 7400,850000
Chicago 30882.250000
Annandale 15045.516667

Dessutom, om genomsnittet måste avrundas, kan du skicka resultatet av AVG() funktion till ROUND() :

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

  1. SQL Pivot – Vet hur man konverterar rader till kolumner

  2. Hur parallella planer startar – del 1

  3. SQL Server Error 109:Det finns fler kolumner i INSERT-satsen än de värden som anges i VALUES-satsen

  4. Exportera SQL-frågedata till Excel