V MariaDB, AVG()
funkce vrací průměrnou hodnotu daného výrazu.
DISTINCT
možnost může být použita k vrácení průměru odlišných hodnot (tj. odstranění duplikátů před výpočtem průměru).
NULL
hodnoty jsou ignorovány.
Ukázková data
Předpokládejme, že máme tabulku s následujícími údaji:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Výsledek:
+----------+---------------------------------+--------------+ | VendorId | ProductName | ProductPrice | +----------+---------------------------------+--------------+ | 1001 | Left handed screwdriver | 25.99 | | 1001 | Right handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | 33.49 | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
Příklad
K získání průměru všech cen můžeme použít následující dotaz.
SELECT AVG(ProductPrice)
FROM Products;
Výsledek:
52.898750
V tomto případě jsou informace o ceně uloženy v ProductPrice
a tak jsme to předali jako argument do AVG()
funkce, která pak vypočítala průměr a vrátila výsledek.
Filtrované výsledky
AVG()
funkce pracuje na řádcích vrácených dotazem. Pokud tedy filtrujete výsledky, výsledek AVG()
to bude odrážet.
SELECT AVG(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Výsledek:
19.680000
V tomto případě je 19,680000 průměrná cena všech produktů nabízených uvedeným prodejcem.
DISTINCT
Klíčové slovo
Můžete použít DISTINCT
klíčové slovo s AVG()
vypočítat pouze odlišné hodnoty. To znamená, že pokud existují nějaké duplicitní hodnoty, jsou považovány za jednu hodnotu.
Příklad:
SELECT
AVG(ProductPrice) AS "All",
AVG(DISTINCT ProductPrice) AS "Distinct"
FROM Products;
Výsledek:
+-----------+-----------+ | All | Distinct | +-----------+-----------+ | 52.898750 | 56.742857 | +-----------+-----------+
V tomto případě mají dvě položky stejnou cenu (levostranný šroubovák a pravostranný šroubovák mají oba cenu 25,99). Proto AVG()
při použití s funkcí DISTINCT
klíčové slovo, považuje obě tyto hodnoty za jednu a podle toho vypočítá svůj výsledek.
Funkce okna
AVG()
funkci lze použít ve funkcích okna. Viz SQL AVG()
pro začátečníky jako příklad.