W MariaDB funkcja AVG() funkcja zwraca średnią wartość podanego wyrażenia.
DISTINCT opcja może być użyta do zwrócenia średniej z odrębnych wartości (tj. Usuń duplikaty przed obliczeniem średniej).
NULL wartości są ignorowane.
Przykładowe dane
Załóżmy, że mamy tabelę z następującymi danymi:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products; Wynik:
+----------+---------------------------------+--------------+ | 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 | +----------+---------------------------------+--------------+
Przykład
Możemy użyć następującego zapytania, aby uzyskać średnią wszystkich cen.
SELECT AVG(ProductPrice)
FROM Products; Wynik:
52.898750
W takim przypadku informacje o cenie są przechowywane w ProductPrice kolumna, więc przekazaliśmy to jako argument do AVG() funkcja, która następnie obliczyła średnią i zwróciła wynik.
Przefiltrowane wyniki
AVG() funkcja działa na wierszach zwróconych przez zapytanie. Więc jeśli filtrujesz wyniki, wynik AVG() odzwierciedli to.
SELECT AVG(ProductPrice)
FROM Products
WHERE VendorId = 1001; Wynik:
19.680000
W tym przypadku 19.680000 to średnia cena wszystkich produktów oferowanych przez określonego dostawcę.
DISTINCT Słowo kluczowe
Możesz użyć DISTINCT słowo kluczowe z AVG() aby obliczyć tylko różne wartości. Oznacza to, że jeśli istnieją jakiekolwiek zduplikowane wartości, są one traktowane jako jedna wartość.
Przykład:
SELECT
AVG(ProductPrice) AS "All",
AVG(DISTINCT ProductPrice) AS "Distinct"
FROM Products; Wynik:
+-----------+-----------+ | All | Distinct | +-----------+-----------+ | 52.898750 | 56.742857 | +-----------+-----------+
W tym przypadku dwa produkty mają tę samą cenę (wkrętak lewy i śrubokręt praworęczny mają cenę 25,99). Dlatego AVG() funkcja, gdy jest używana z DISTINCT słowo kluczowe, traktuje obie te wartości jako jedną i odpowiednio oblicza wynik.
Funkcje okien
AVG() funkcja może być używana w funkcjach okien. Zobacz SQL AVG() dla początkujących na przykład tego.