90 likes | 192 Views
Részletező csoportosítások. 2013. 04.09. Rózsa Győző raver @ raver.myip.hu. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!. ROLLUP. GROUP BY résznél használjuk
E N D
Részletező csoportosítások 2013. 04.09. Rózsa Győzőraver@raver.myip.hu
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
ROLLUP • GROUP BY résznél használjuk • Segítségével egy lekérdezésen belül egyszerűen juthatunk olyan adatokhoz, melyhez minimum két külön lekérdezést kellene írnunk
ROLLUP - példa • Írjuk meg egy szkriptbe a következő lekérdezéseket: • SELECT job, deptno, avg(sal)FROM empGROUP BY job, deptno; • SELECT job, deptno, avg(sal)FROM empGROUP BY ROLLUP (job, deptno); • SELECT job, deptno, avg(sal)FROM empGROUP BY ROLLUP (deptno, job);
CUBE operátor • Hasonló a ROLLUP-hoz, de minden kombinációt előállít, míg a ROLLUP csak az adott sorrendhez tartozót • Próbáljuk ki együtt a különbséget!
GROUPING fv • Indikátor fv • Megmutatja, hogy csoportosítás a ROLLUP/CUBE fv-nél éppen melyik alapján készült • 1 az értéke, ha az adott sor felelős • 0 ha az adott sor nem felelős • GROUPING_ID fv-vel több oszlopot is nézhetünk
GROUPING SETS fv • GROUP BY kiegészítése • Segítségével több szempont alapján is csoportosíthatunk
select job, deptno, avg(sal) from emp group by job, deptno ORDER BY job; select job, deptno, avg(sal) from emp group by GROUPING SETS((job, deptno), (job)) ORDER BY job;