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 .... * * * 10000000Tab. 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 29025Tab. 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 500000Tab. 7.6 Wynik operacji CUBE
Jest 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