Gépes feladatok: Összesítő
(aggregáló)
függvények, csoportosítás
SQL-ben:
SELECT ... FROM ...
[WHERE ...]
[[GROUP BY ... [HAVING ...]]
[ORDER BY ... ]
záradékok. Alkérdések a WHERE
és HAVING
záradékokban.
1.5.2. WHERE záradékban:
(a) t IN (SFW)
(b) t
theta (SFW) -- ahol theta az aritmetikai
összehasonlítás jele
(c) t
theta ANY/ALL(SFW)
(d) EXISTS
(SFW)
Az alábbi típusú
alkérdések
közül melyeknél
használható (a), (b),
(c) ill.(d)?
1.)
skalárértéket
adó alkérdések
2.)
skalárértékekből
álló halmazt illetve multihalmazt adó
alkérdések
3.) teljes,
többdimenziós
tábla
4.) egy sort adó
többdimenziós tábla
2.)
Az
órai gyakorlatok
példái: Fejezd
ki a
lekérdezéseket SQL SELECT-tel!
A
gyakorlatok feladatai itt: table_dolgozo.txt
-- táblák
létrehozása: create_dolg
Feladatok
a 4.gyakorlatra összesítő
függvényekre,
csoportosításra,
alkérdésekre:
1.4. Oracle csoportosítás, aggregátor
függvények
----- egy relációra vonatkozó
lekérdezések (előbb csak
egy táblára)
- Mekkora a minimális és a maximális
fizetés a
dolgozók között?
- Mennyi a dolgozók összfizetése?
- Mennyi a 20-as osztályon az
átlagfizetés?
- Adjuk meg, hogy hány különböző
foglalkozás fordul elő a dolgozók
között!
- Adjuk meg osztályonként az
átlagfizetést!
- Adjuk meg azokra az osztályokra az
átlagfizetést, ahol ez nagyobb mint 2000.
- Adjuk meg azokra az osztályokra az
átlagfizetést, ahol legalább
hárman dolgoznak!
- Melyek azok az osztályok, ahol legalább
hárman dolgoznak?
- Adjuk meg osztályonként a minimális
fizetést, de csak azokat az
osztályokét, ahol
a minimális fizetés nagyobb, mint a 30-as
osztályon dolgozók minimális
fizetése.
- Adjuk meg osztályonként az ott
dolgozó hivatalnokok (FOGLALKOZAS='CLERK')
átlagfizetését, de csak azokon az
osztályokon, ahol legalább két
hivatalnok dolgozik!
----- több
táblára vonatkozó
lekérdezések,
és alkérdések:
- Adjuk meg telephelyenként a fizetések
összegét, de csak azokra a telephelyekre,
ahol legalább 4 dolgozó van.
- Kik azok a dolgozók, akiknek a fizetése
nagyobb,
mint 'ALLEN' fizetése?
- Adjuk meg osztályonként a minimális
fizetést, de csak azokat az
osztályokét, ahol
a minimális fizetés nagyobb, mint a
30-as
osztályon dolgozók minimális
fizetése.
- Kik azok a dolgozók, és milyen
munkakörben
dolgoznak, akiknek a legnagyobb
a fizetésük?
(többféle megoldással, ALL alkérdés, MIN fv skalár alkérdés, stb)
- Kik azok a dolgozók, akiknek a fizetése kisebb,
mint
valamelyik hivatalnok ('CLERK')
fizetése (ugyanez a
kérdés, csak most
minden hivatalnok fizetésénél legyen
kisebb)
- Adjuk meg, hogy mely dolgozók fizetése jobb,
mint a saját osztályán (ahol dolgozik)
dolgozók
átlagfizetése (korrelált alkérdéssel)
3.) A
példatár feladatai
önálló
gyakorlásra:
-- Lásd Feladatok.pdf
(2.fejezet
feladatai)
és a táblák
létrehozása cr_dept_emp