Rozdział 11. ♦ Więcej o SQL 317
Której funkcji należy użyć, aby dowiedzieć się, jaka jest średnia wartość zamówień? Oczywiście AVG. Wykonajmy zatem instrukcję:
SELECT AVG(Wartosc) AS 'Średnia wartość'
FROM zamówienia:
Efektem jego wykonania będzie tabela z kolumną o nazwie Średni a wartość zawierająca jedno pole z obliczoną średnią arytmetyczną wszystkich zamówień (rysunek 11.9).
Rysunek 11.9.
Efekt zapytania obliczającego średnia wartość zmówienia
mysql> SELECT AVG(Wartosc) AS 'Średnia wartość' FROM zamówienia; I Średnia wartość |
I 13.781000 |
1 row in set (0.00 sec)
Jeśli interesuje nas jedynie średnia wartość zamówień klienta o identyfikatorze 1, zastosujemy zapytanie w postaci:
SELECT AVG(Wartość) AS 'Średnia wartość'
FROM Zamówienia WHERE Klientld - 1:
A gdybyśmy chcieli dowiedzieć się, jaka była średnia wartość zamówień w styczniu 2005 roku, zapytanie będzie miało postać:
SELECT AVG(Wartosc) AS 'Średnia wartość'
FROM Zamówienia
WHERE Data 8ETWEEN '2005-01-01' AND '2005-01-31':
Równie użyteczne może być pobranie minimalnej:
SELECT MIN(Wartosc) AS 'Wartość minimalna' FROM Zamówienia:
lub maksymalnej:
SELECT MAX(Wartosc) AS 'Wartość minimalna' FROM Zamówienia: wartości zamówienia. Co więcej, można użyć kilku funkcji w jednym zapytaniu. Jeśli zatem interesuje nas minimalna, maksymalna i średnia wartość zamówień złożonych w marcu 2005 roku, zastosujemy instrukcję SELECT w postaci:
SELECT MIN(Wartosc) AS MIN. MAX(Wartosc) AS MAX. AVG(Wartosc) AS AVG
FROM Zamówienia
WHERE Data 8ETWEEN '2005-03-01' AND '2005-03-31':
W wyniku takiego zapytania zostanie zwrócona tabela zawierająca trzy kolumny: MIN, MAX i AVG, tak jak jest to widoczne na rysunku 11.10.
Rysunek 11.10.
Wynik zapytania wykorzystującego kilka funkcji statystycznych
mysql> SELECT MIN(WartOSc) AS MIN, MAX(Wartosc) AS MAX, AVG(WartOSc) AS AVG -> FROM Zanowienia
-> WHERE Data BETWEEN '2005-03-01' AND '2005-03-31';
| MIN | MAX | AVG | | 2.28 | 15.26 1 7.883333 | 1 row in set (0.00 sec)