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.