sql >> Database >  >> RDS >> Database

Hoe het gemiddelde van een numerieke kolom in SQL te vinden

Probleem:

U wilt het gemiddelde berekenen van de getallen die in een kolom zijn opgeslagen.

Voorbeeld:

Onze database heeft een tabel met de naam sale met gegevens in de volgende kolommen:id , city , year , en amount .

id stad jaar bedrag
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

Laten we de gemiddelde verkoop berekenen, ongeacht de stad of het jaar.

Oplossing:

SELECT AVG(amount) as avg_amount
FROM sale;

Dit is het resultaat:

gem_bedrag
19073.125000

Discussie:

Als u het gemiddelde wilt berekenen van de numerieke waarden die in een kolom zijn opgeslagen, kunt u dit doen met de AVG() geaggregeerde functie; het neemt als argument de naam van de kolom waarvan u het gemiddelde wilt berekenen. Als u geen andere kolommen heeft opgegeven in de SELECT clausule, wordt het gemiddelde berekend voor alle records in de tabel.

Omdat het natuurlijk een geaggregeerde functie is, AVG() kan ook met groepen worden gebruikt. Als we bijvoorbeeld de gemiddelde verkoop per stad willen vinden, kunnen we deze vraag schrijven:

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

Het gemiddelde wordt berekend voor elke stad:

stad bedrag
Los Angeles 7400.850000
Chicago 30882.250000
Annandale 15045.516667

Bovendien, als het gemiddelde moet worden afgerond, kunt u het resultaat van de AVG() . doorgeven functie in ROUND() :

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

  1. Hoe de ASCII-codewaarde voor een bepaald teken in SQL Server te retourneren?

  2. Het minimaliseren van de impact van het verbreden van een IDENTITEIT-kolom - deel 4

  3. Kijk uit voor een tabel met nieuwe records in de sql-database

  4. De kosten van uw databasehosting verlagen:DigitalOcean vs. AWS vs. Azure