45876 skanuj0304 (2)

45876 skanuj0304 (2)



318 PHP i MySQL dla każdego

Wartość zamówień może być również sumowana za pomocą funkcji SUM. Kiedy interesuje nas zatem sumaryczna wartość zamówień złożonych przez klienta o identyfikatorze 2, zastosujemy zapytanie w postaci:

SELECT SUM(Wartość) AS Suma FROM Zamówienia WHERE Klient Id = 2;

Grupowanie wyników zapytań

W dotychczasowych przykładach funkcje agregujące wykorzystywaliśmy do zebrania informacji statystycznych według jednego kryterium, czyli np. liczby zamówień czy średniej wartości zamówienia jednego klienta. Co jednak zrobić w sytuacji, kiedy interesuje nas np. całkowita liczba zamówień każdego z klientów? Można by wykonać serię zapytań, ale to z pewnością nie byłoby wygodne. Dlatego też język SQL udostępnia klauzulę grupującą GROUP BY. Schematyczne zapytanie SQL zawierające klauzulę GROUP BY ma postać:

SELECT kol umaił. kolumna2.....kolumnaN']

FROM tabelalł. tabela2.....tabelaN]

WHERE warunki

GRUP BY kolumnal[. kolumna2.....kolumnaN]

Wyniki zapytania zostaną wtedy zgrupowane względem wskazanych kolumn. Zobaczmy, jak będzie wyglądało działanie takiej konstrukcji na konkretnym przykładzie. Załóżmy, że interesuje nas całkowita liczba zamówień, jakie zostały złożone przez każdego klienta. Będziemy oczywiście operować na przedstawionej w poprzedniej sekcji tabeli Zamówienia. Aby uzyskać tak określoną informację, należy wykonać zapytanie w postaci:

SELECT Klientld. COUNTt*) AS 'Liczba Zamówień'

FROM Zamówienia GROUP BY Klientld:

Wynik tego zapytania został przedstawiony na rysunku 11.11. Widać wyraźnie, że klient o identyfikatorze 1 złożył 3 zamówienia, klient o identyfikatorze 2 — 2 zamówienia itd.

Rysunek 11.11.

Pobranie całkowitej liczby zamówień dla każdego klienta


mysq1> SELECT Klientld, COUNT(*) AS ‘Liczba Zamówień1 -> FROM Zamówienia -> GROUP BY Klientld;

I Klientld | Liczba Zamówień

S rows in set (0.00 sec)

W podobnie prosty sposób możemy określić, jaka była minimalna i maksymalna wartość zamówień złożonych przez naszych klientów od 1 stycznia do 31 marca 2005 roku. Pozwala na to instrukcja:


Wyszukiwarka

Podobne podstrony:
skanuj0192 (5) 204 PHP i MySQL dla każdego widoczny na rysunku 7.7. Formularz tworzony jest za pomoc
37896 skanuj0481 (2) 498 PHP i MySQL dla każdego Rysunek 19.5. Lista adresów subskrybentów będąca wy
skanuj0053 (65) PHP i MySQL dla każdego zmienną liczba, której jest przypisywana wartość 10. Następn

więcej podobnych podstron