analitikus, statisztikai és szélsőérték fv-k

21
Analitikus, statisztikai és szélsőérték fv-k 2012. 04.17. Hári Veronika [email protected] [email protected]

Upload: guy-pruitt

Post on 02-Jan-2016

28 views

Category:

Documents


1 download

DESCRIPTION

Analitikus, statisztikai és szélsőérték fv-k. 2012. 04.17. Hári Veronika harivero @ gmail.com hari.veronika @ nik.uni-obuda.hu. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Analitikus, statisztikai és szélsőérték  fv-k

Analitikus, statisztikai és szélsőérték fv-k

2012. 04.17. Hári Veronika [email protected]

[email protected]

Page 2: Analitikus, statisztikai és szélsőérték  fv-k

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!

Page 3: Analitikus, statisztikai és szélsőérték  fv-k

Analitikus fv-k

• Ezek a fv-k nincsenek az SQL nyelvben• Új fv család• 3 nagy csoport– RANG– Statisztikai– Hisztogram

Page 4: Analitikus, statisztikai és szélsőérték  fv-k

Általános felépítés

Fv_neve( [paraméter] ) OVER ( záradék )• Mindig a SELECT utasításrészben találhatóak • A paraméter tetszőleges oszlopkifejezés lehet• Az OVER záradék elhagyható

Page 5: Analitikus, statisztikai és szélsőérték  fv-k

A záradék bővebben

([partíció tag] [rendező tag[ablak-tag]])• Tulajdonképpen a munkaterületet jelöli ki az analitikus

záradék• Partíció tag: Egy munkatábla munkaterületén összefüggő

táblatartományokat képezhetünk, ahol az oszlopkifejezések értéke azonos

• Rendező tag: ORDER BY (partíción belüli rendezés)• Ablak tag: kijelöli minden partíción belül azt az összefüggő

táblatartományt, melynek sorain történik az analitikus fg. által kijelölt műveletvégzéstlehet fizikai vagy logikai

Page 6: Analitikus, statisztikai és szélsőérték  fv-k

RANG fv-k

• Over opcióval ellátott– RANK– DENSE_RANK– PERCENT_RANK

• Nem tartalmaznak ablak tagot, és paraméterlistájuk üres

• Rangsorolást végeznek• Hiányzó partíció tag esetén az egész táblán

rangsorolnak

Page 7: Analitikus, statisztikai és szélsőérték  fv-k

RANG fv-k

• RANK:1-től partíció méretéig sorszámozza (ellátja „rang”-gal) a sorokat

• DENSE_RANKu. a., mint a RANK, de ha 2 sornak ugyanazt a rangot adja, a következőnél a következő sorszámot adja (nem hagy ki sorszámot)

• PERCENT_RANK0-1 tartományban ossza ki a rangokat, úgy, hogy ha a sor rangja n, a partíció k sorból áll, akkor arang=(n-1)/(k-1)

Page 8: Analitikus, statisztikai és szélsőérték  fv-k

Példa

SELECT ename as nev, sal as fizu, RANK() OVER (Order by sal DESC) as normr, DENSE_RANK() OVER (Order by sal DESC) as tomor, PERECENT_RANK() OVER (Order by sal DESC) as szazFROM emp;

Page 9: Analitikus, statisztikai és szélsőérték  fv-k

Aggregáló RANG fv-k

• OVER helyett WITHIN GROUP opcióval vannak ellátva

• Nem is analitikus fv-k (működésük mögött analitikus fv.-k állnak)

• Paraméterként megadott konstans kifejezés értékének helyét keresi meg az egyes partíciókban, azt feltételezve, hogy ez a konstans az egyes partíciók eleme

• A paraméterlista már nem üres• Mi lenne, ha... típusú feladatok

Page 10: Analitikus, statisztikai és szélsőérték  fv-k

Példa

• Felvennénk egy új dolgozót, Jani bátyát.• Írjunk egy szkriptet, mely megmondja, hogy

egy adott fizu esetén, hányadik legtöbbet kereső emberke lenne?

• Magyarán kérjünk be egy fizetést, és nézzük meg, hogy hányadik lenne a rangsorban…

Page 11: Analitikus, statisztikai és szélsőérték  fv-k

Példa - megoldás

ACCEPT fizu PROMPT ’Fizu: ’;SELECT ’rangsora’ as Kérdés, RANK(&fizu) WITHIN GROUP (Order by sal DESC) as Normrang, DENSE_RANK(&fizu) WITHIN GROUP (Order by sal DESC) as Tomorrang, PERCENT_RANK(&fizu) WITHIN GROUP (Order by sal DESC) as SzrangFROM emp;

Page 12: Analitikus, statisztikai és szélsőérték  fv-k

Statisztikai analitikus fv-k

• Hagyományos statisztikai fv-knek (sum, min, max stb.) létezik analitikus alakja.

• Használata:fv_neve (paraméter/ALL/DISTINCT) OVER ( záradék )

Page 13: Analitikus, statisztikai és szélsőérték  fv-k

Példa

• Dolgozók fizetésének folyamatosan halmozott összege (kumulált összeg), fizetés szerint növekvően rendezve:

SELECT ename, job, SUM(sal) OVER (ORDER BY sal ASC) as ”Kumulalt”FROM emp;

Page 14: Analitikus, statisztikai és szélsőérték  fv-k

RATIO_TO_REPORT

• RATIO_TO_REPORT(kifejezés) OVER ( partíció tag)

• Kiszámítja az érték és a csoportösszeg közötti arányt

• (Részesedés)• Írjuk meg, hogy ki milyen arányban részesedik

az összfizetésből

Page 15: Analitikus, statisztikai és szélsőérték  fv-k

Példa

• SELECT ename as név, sal as fizetés, RATIO_TO_REPORT(sal) OVER () as részesedésFROM empORDER BY sal DESC;

Page 16: Analitikus, statisztikai és szélsőérték  fv-k

FIRST_VALUE/LAST_VALUE

• Hasonló mint a MIN/MAX• De ablaktartományokban is használhatóak• Alakja:

FIRST_VALUE/LAST_VALUE(kifejezés) OVER (analitikus utasításrész)

Page 17: Analitikus, statisztikai és szélsőérték  fv-k

Hisztogram fv-k

• WIDTH_BUCKET– WIDTH_BUCKET(oszlopkifejezés, alsóhatár,

felsőhatár, szeletek száma)– Nem is analitikus függvény– „azonos szélességű” hisztogram készíthető

segítségével, azaz meghatározza, hogy azonos méretű értéktartományokban az oszlopkifejezés értékei hogyan oszlanak meg

Page 18: Analitikus, statisztikai és szélsőérték  fv-k

Példa

• Csináljunk 4 fizetési kategóriát, és listázzuk ki, hogy ki hova tartozik.

• SELECT ename, sal, WIDTH_BUCKET(sal, 800, 5001, 4) as kategoriaFROM empORDER BY kategoria;

Page 19: Analitikus, statisztikai és szélsőérték  fv-k

NTILE függvény

• Hasonló mint a WIDTH_BUCKET, de itt a hisztogram azonos magasságú, és a szélesség különbözik

• Használata:NTILE(kifejezés) OVER ([Partíció] Rendező tag)

• Először rendez (Rendező tag szerint), majd a kifejezés értékének megfelelő számú résztartományra bont

Page 20: Analitikus, statisztikai és szélsőérték  fv-k

Példa

• Listázzuk fizetés szerint rendezve a dolgozók nevét, fizetését és fizetési kategóriáját, ahol ez utóbbit az összes dolgozó fizetési tartományának 3 részre osztásával úgy kapjuk meg, hogy minden részbe közel azonos számú dolgozó kerüljön.

• SELECT ename, sal,NTILE(3) OVER (order by sal DESC) as kategoriaFROM emp;

Page 21: Analitikus, statisztikai és szélsőérték  fv-k

Köszönöm a figyelmeteket!