skanuj0305 (3)

skanuj0305 (3)



Rozdział 11. ♦ Więcej o SQL 319

SELECT Klientld. MIN(Wartosc) AS MIN. MAX(Wartosc) AS MAX FROM Zamówienia

WHERE Data BETWEEN '2005-01-01' AND '2005-03-31'

GROUP BY Klientld:

której efekt działania został przedstawiony na rysunku 11.12.

Rysunek 11.12.

Maksymalna i minimalna wartość zamówień między styczniem i marcem 2005 r.


mysql> SELECT Klientld, MlN(Wartosc) AS MIN, MAx(Wartosc) AS MAX -> FROM Zamówienia

-> WHERE Data BETWEEN ‘2005-01-01’ AND '2005-03-31'

-> GROUP BY Klientld:


I Klientld | MIN


10.22

2.28

12.44

15.26

6.11


22.35

18.48

15.26

6.11


Grupowanie może się również odbywać względem innych kolumn niż Klientld. Gdybyśmy chcieli się dowiedzieć, jaka jest suma zamówień poszczególnych towarów, zastosowalibyśmy instrukcję:

SELECT Towarld, Sum(Wartosc) AS Suma FROM Zamówienia GROUP BY Towarld:

Istnieje również możliwość grupowania względem większej liczby kolumn. Gdyby interesowało nas, ile razy dany klient zamawiał dany towar, i jaka była średnia wartość zamówienia danego towaru przez danego klienta, zastosowalibyśmy grupowanie względem kolumn KI ientld i Towarld, a zapytanie miałoby postać:

SELECT Klientld. Towarld. AVG(Wartosc) AS 'Średnia Wartość’.

C0UNT(*) AS 'Liczba Zamówień'

FROM Zamówienia

GROUP BY Klientld, Towarld;

Efekt jego działania jest przedstawiony na rysunku 11.13. Widać wyraźnie, że np. klient o identyfikatorze 1 zamawiał dwukrotnie towar o identyfikatorze 2, a średnia wartość tych zamówień wyniosła 14,16. Podobnie klient o identyfikatorze 2 zamawiał towar o identyfikatorze 1 również dwukrotnie, a średnia wartość tych zamówień wyniosła 22,35.

Rysunek 11.13.

Efekt grupowania względem dwóch kolumn


mysql> SELECT Klientld, Towarld, AVG(Wartosc) AS 'Średnia Wartość', ->    COUNTC*) AS 'Liczba Zamówień'

-> FROM Zamówienia

-> GROUP BY Klientld, Towarld;

I Klientld | Towarld | Średnia Wartość

14.160000

10.220000

22.350000

2.280000

18.480000

12.440000

15.260000

6.110000


8 rows in set (0.00 sec)


Wyszukiwarka

Podobne podstrony:
skanuj0297 (3) Rozdział 11. ♦ Więcej o SQL 311 Rozdział 11. ♦ Więcej o SQL 311 mysql> select tytu
skanuj0299 (2) Rozdział 11. ♦ Więcej o SQL 313 Rozdział 11. ♦ Więcej o SQL 313 mysql> SELECT tytu
13017 skanuj0320 (2) Rozdział 11. ♦ Więcej o SQL 335 INSERT INTO tablica (kolumny) SELECT kolumny_po
skanuj0303 (2) Rozdział 11. ♦ Więcej o SQL 317 Której funkcji należy użyć, aby dowiedzieć się, jaka
skanuj0310 (2) Rozdział 11. ♦ Więcej o SQL 325 W przypadku już istniejącej tabeli jej typ może zosta
skanuj0314 (2) Rozdział 11. ♦ Więcej o SQL 329 Korzystanie z kluczy obcych wiąże się niestety z kilk

więcej podobnych podstron