4.gyak. Lekérdezések kifejezése SQL-ben:
Csoportosítás és összesítések. Alkérdések, korrelált alkérdések. 
   
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 FROM záradékban.
 Alkérdések a WHERE és HAVING záradékokban, háromféle eset:
 a) az alkérdés egyetlen skalár értékkel,
 b) skalár értékek multihalmazával,
 c) tetszőleges táblával tér vissza.
 Korrelált alkérdések kiértékelése.
       

A gyakorlat áttekintése:
> lásd Oracle adatbázis elérhetősége
> 1. Demo példák
   -- Ehhez előkészítés: HR séma tábláihoz készítsük el a szinonimákat create_synonym
   -- HR séma a dokumentációban: Sample Schemas - Schema Diagram: HR
> 2. Órai gyakorló feladatok  
    -- Feladatok: table_dolgozo.txt és a táblák létrehozása: create_dolg
> 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 
    
1.Demo példák: HR séma tábláihoz (lásd Oracle-doksik)
 

1.4. Csoportosítás és összesítések az SQL-ben
   
SELECT column,] group_function(column), ...
FROM   table
[WHERE condition]
[GROUP BY group_by_expression
    [HAVING group_condition] ]
[ORDER BY column];
   
Segédanyag: >> Csoportosítás példáit próbáljuk ki!
 
1.5. Alkérdések, korrelált alkérdések.

1.5.1. FROM listán (SFW) sorváltozó
     
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
     
Segédanyag: >> Alkérdések I.  és Alkérdések II. példáit próbáljuk ki!
 

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:

- Mekkora a minimális és a maximális fizetés a dolgozók között?
- Kinek a legkisebb a fizetése?
- Kinek a legnagyobb a fizetése?
- 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!
- Kik azok a dolgozók, és milyen munkakörben dolgoznak, akiknek a legnagyobb
  a fizetésük?
- 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!
- Adjuk meg, hogy mely dolgozók fizetése jobb, mint a saját osztályán (ahol dolgozik)
   dolgozók átlagfizetése!

- Kik azok a dolgozók, akiknek a fizetése nagyobb, mint  'ALLEN' fizetése?
- Kik azok a dolgozók, és milyen munkakörben dolgoznak, akiknek a legkisebb
  a fizetésük? (köv.héten lesz a min csoportfüggvénnyel, ma theta ALL alkérdéssel)
- Kik azok a dolgozók, és milyen munkakörben dolgoznak, akiknek a legnagyobb
  a fizetésük?  (köv.héten lesz a max csoportfüggvénnyel, ma theta ALL alkérdéssel)
- 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)
       

 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 
    
 Fel a lap tetejére                          Vissza az AB1gyak oldalára (főmenü)