SELECT Czas.rok, Miejsce.miasto, Towar.kategoria, SUM(Sprzedaż.wartość)AS "W sumie"
FROM Sprzedaż NATURAL JOIN Miejsce NATURAL JOIN Towar NATURAL JOIN Czas
GROUP BY ROLLUP(Czas.Rok, Miejsce.Miasto, Towar.Kategoria);
da wynik w rodzaju (oczywiście używane po stronie klienckiej narzędzie OLAP
przedstawi wynik tego zapytania w bardziej czytelny sposób np. za pomocą
wykresu): ROK MIASTO KATEGORIA W sumie
------ ---------- ----------- ----------
1996 Warszawa Komputery 100000
1996 Warszawa Telewizory 50000
....
1996 Warszawa * 1000000
1996 Łódź Komputery 50000
1996 Łódź Telewizory 25000
.....
1996 Łódź * 250000
.....
1996 * * 2000000
1997 Warszawa Komputery 1500000
....
* * * 10000000
Tab. 7.4 Wynik operacji ROLLUP
Operator ROLLUP daje wszystkie częściowe podsumowania po poszczególnych wymiarach – w danej kolejności.
W wyniku istotna jest kolejność grupowanych kolumn. W szczególności zapytanie:
SELECT e.Deptno, e.EmpNo, SUM(e.Sal) AS Zarobki
FROM Emp e
GROUP BY ROLLUP(e.Deptno, e.EmpNo);
daje wynik: DEPTNO EMPNO ZAROBKI
---------- ---------- ----------
10 7782 2450
10 7839 5000
10 7934 1300
10 8750
20 7369 800
20 7566 2975
20 7788 3000
20 7876 1100
20 7902 3000
20 10875
30 7900 950
30 7499 1600
30 7521 1250
30 7654 1250
30 7698 2850
30 7844 1500
30 9400
29025
Tab. 7.5 Wynik operacji ROLLUP
Operator ROLLUP daje więc w szczególności możliwość, której brakowało
dotychczas w SQL – zwracania w wyniku zarówno szczegółowych wierszy jak
ich podsumowań.Operator CUBE daje nawet więcej niż ROLLUP, bo również wszystkie częściowe podsumowania po poszczególnych wymiarach – we wszystkich możliwych kolejnościach.
Na przykład, gdybyśmy w powyższej instrukcji SELECT zamienili ROLLUP na CUBE, dostalibyśmy oprócz powyższych wierszy również takie wiersze jak:
* Warszawa Komputery 1000000
...
* Warszawa * 9000000
...
* * Komputery 8000000
....
1996 * Komputery 500000
Tab. 7.6 Wynik operacji CUBEJest też możliwość łączenia zwykłego grupowania z grupowaniem typu ROLLUP i CUBE. Na przykład:
GROUP BY Miejsce.Miasto, ROLLUP(Czas.Rok, Towar.Kategoria)
Źródło: http://edu.pjwstk.edu.pl/wyklady/szb/scb/wyklad7/w7.htm
Brak komentarzy:
Prześlij komentarz