sql >> Databáze >  >> RDS >> Database

Jak najít průměr číselného sloupce v SQL

Problém:

Chcete vypočítat průměr čísel uložených ve sloupci.

Příklad:

Naše databáze obsahuje tabulku s názvem sale s údaji v následujících sloupcích:id , city , year a amount .

id město rok částka
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 89 000,40
7 Annandale 2018 21005,77
8 Chicago 2016 2300,89

Vypočítejme průměrný prodej bez ohledu na město nebo rok.

Řešení:

SELECT AVG(amount) as avg_amount
FROM sale;

Zde je výsledek:

průměrná_částka
19073,125000

Diskuse:

Pokud chcete vypočítat průměr číselných hodnot uložených ve sloupci, můžete tak učinit pomocí AVG() agregační funkce; jako svůj argument bere název sloupce, jehož průměr chcete vypočítat. Pokud jste v SELECT nezadali žádné další sloupce klauzule, bude průměr vypočítán pro všechny záznamy v tabulce.

Samozřejmě, protože jde o agregovanou funkci, AVG() lze použít i se skupinami. Pokud bychom například chtěli zjistit průměrný prodej na město, můžeme napsat tento dotaz:

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

Průměr se vypočítá pro každé město:

city částka
Los Angeles 7400,850000
Chicago 30882,250000
Annandale 15045,516667

Navíc, pokud je třeba průměr zaokrouhlit, můžete předat výsledek AVG() funkce do ROUND() :

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

  1. Konfigurace vyhrazené sítě pro komunikaci skupiny dostupnosti

  2. Escape řetězec v SQL Server, takže je bezpečné použít ve výrazu LIKE

  3. Jak nastavit asynchronní replikaci mezi clustery MariaDB Galera

  4. Chyba převodu dat hromadného načtení (neshoda typu nebo neplatný znak pro zadanou kódovou stránku) pro řádek 1, sloupec 4 (rok)