Database
 sql >> Baza danych >  >> RDS >> Database

Jak znaleźć średnią kolumny numerycznej w SQL?

Problem:

Chcesz obliczyć średnią liczb przechowywanych w kolumnie.

Przykład:

Nasza baza danych zawiera tabelę o nazwie sale z danymi w następujących kolumnach:id , city , year i amount .

id miasto rok kwota
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

Obliczmy średnią sprzedaż, niezależnie od miasta czy roku.

Rozwiązanie:

SELECT AVG(amount) as avg_amount
FROM sale;

Oto wynik:

średnia_ilość
19073.125000

Dyskusja:

Jeśli chcesz obliczyć średnią wartości liczbowych przechowywanych w kolumnie, możesz to zrobić za pomocą AVG() funkcja zagregowana; jako argument przyjmuje nazwę kolumny, której średnią chcesz obliczyć. Jeśli nie określiłeś żadnych innych kolumn w SELECT klauzula, średnia zostanie obliczona dla wszystkich rekordów w tabeli.

Oczywiście, ponieważ jest to funkcja agregująca, AVG() może być również używany z grupami. Na przykład, jeśli chcemy znaleźć średnią sprzedaż na miasto, możemy napisać to zapytanie:

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

Średnia jest obliczana dla każdego miasta:

miasto kwota
Los Angeles 7400.850000
Chicago 30882.250000
Annandale 15045.516667

Dodatkowo, jeśli średnia ma być zaokrąglona, ​​możesz przekazać wynik AVG() funkcji w ROUND() :

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Equals (=) Operator dla początkujących

  2. Unikanie sortowania za pomocą łączenia łączenia przez scalanie

  3. AKTUALIZACJA SQL:Dowiedz się, jak aktualizować wartości w tabeli

  4. Operatory zbioru T-SQL Część 2:PRZECIĘCIE i Z WYJĄTKIEM

  5. Wielkość próbki i czas trwania AKTUALIZACJI STATYSTYK:czy to ma znaczenie?