1. a) Functiile grup includ valorile NULL in calcule? b) Care este deosebirea dintre clauzele WHERE si H!"N#?
$$$$$$$$$$$$$$$$$$$$$$$$$$ %. &a se a'iseze cel (ai (are salariu cel (ai (ic salariu su(a si (edia salariilor tuturor anga*atilor. Etic+etati coloanele ,a-i( ,ini( &u(a respectiv ,edia. &a se rotun*easca rezultatele. &ELEC ,/0salar) (a-i(,"N0salar) (ini( &U,0salar) su(a !#0salar) (edia FR2, e(ploees3 $$$$$$$$$$$$$$$$$$$$$$$$$$ 4. &a se a'iseze (ini(ul (a-i(ul su(a si (edia salariilor pentru 'iecare *ob. &ELEC ,/0salar) (a-i(,"N0salar) (ini( &U,0salar) su(a !#0salar) (edia*ob5id FR2, e(ploees #R2U6 78 *ob5id3 $$$$$$$$$$$$$$$$$$$$$$$$$$ 9. &a se a'iseze nu(arul de anga*ati pentru 'iecare *ob. &ELEC C2UN0e(ploee5id)*ob5id FR2, e(ploees #R2U6 78 *ob5id3 $$$$$$$$$$$$$$$$$$$$$$$$$$ :. &a se deter(ine nu(arul de anga*ati care sunt se'i. Etic+etati coloana � Nr. (ana anageri� . &ELEC C2UN0;"&"NC (anager5id) FR2, e(ploees3 $$$$$$$$$$$$$$$$$$$$$$$$$$ <. &a se a'iseze di'erenta dintre cel (ai (are si cel (ai (ic salariu. Etic+etati coloana. &ELEC ,/0salar)$,"N0salar) FR2, e(ploees3 $$$$$$$$$$$$$$$$$$$$$$$$$$ =. &crieti o cerere pentru a se a'isa nu(ele departa(entului locatia nu(arul de anga*ati si salariul (ediu pentru anga*atii din acel departa(ent. Coloanele vor 'i etic+etate corespunzator. &ELEC depart(ent5na(elocation5id count0e(ploee5id)avg0salar) FR2, e(ploees >2"N depart(ents U&"N# 0depart(ent5id) #R2U6 78 depart(ent5na(e location5id3 $$$$$$$$$$$$$$$$$$$$$$$$$ . &a se a'isez a'iseze e codul si si nu(ele nu(ele anga*ati anga*atilor lor care care c� stiga stiga (ai (ult (ult dec� t salariul salariul (ediu din 'ir(a. &e va sorta rezultatul � n ordine descrescatoare a salariilor. &ELEC e(ploee5id last5na(esalar FR2, e(ploees #R2U6 78 e(ploee5id last5na(e salar H!"N# salar@0&ELEC avg0salar) FR2, e(ploees) 2R;ER 78 salar ;E&C3 $$$$$$$$$$$$$$$$$$$$$$$$$ A. 6entru 'iecare se' sa se a'iseze codul sau si salariul celui (ai prost platit
subordonat. &e vor e-clude cei pentru care codul (anagerului nu este cunoscut. ;e ase(enea se vor e-clude grupurile � n care salariul (ini( este (ai (ic de 1BBB. &ortati rezultatul � n ordine descrescatoare a salariilor. &ELEC ang.(anager5id ang.last5na(e ang.salar FR2, e(ploees ang >2"N e(ploees se' 2N ang.(anager5idDse'.e(ploee5id WHERE ang.salar@D1BBB and ang.salarD0&ELEC (in0salar) FR2, e(ploees WHERE (anager5idDse'.e(ploee5id)3 &U &ELEC (anager5id last5na(esalar FR2, e(ploees ceva #R2U6 78 ceva.(anager5idceva.last5na(eceva.salar H!"N# ceva.salar@D1BBB and ceva.salarD0&ELEC (in0salar) FR2, e(ploees WHERE (anager5idDceva.(anager5id)3 $$$$$$$$$$$$$$$$$$$$$$$$$ 1B. 6entru departa(entele in care salariul (a-i( depaseste 4BBB sa se obtina codul nu(ele acestor departa(ente si salariul (a-i( pe departa(ent. &ELEC depart(ent5id depart(ent5na(e(a-0salar) FR2, e(ploees *oin depart(ents using 0depart(ent5id) #R2U6 78 depart(ent5id depart(ent5na(e H!"N# (a-0salar)@ABBB3 $$$$$$$$$$$$$$$$$$$$$$$$$ 11. Care este salariul (ediu (ini( al *ob$urilor e-istente? &alariul (ediu al unui *ob va 'i considerat drept (edia arir(etica a salariilor celor care � l practica. &ELEC (in0avg0salar)) FR2, e(ploees #R2U6 78 *ob5id3 $$$$$$$$$$$$$$$$$$$$$$$$$ 1%. &a se a'iseze codul nu(ele departa(entului si su(a salariilor pe departa(ente. &ELEC depart(ent5id depart(ent5na(e su(0salar) FR2, e(ploees >2"N depart(ents U&"N# 0depart(ent5id) #R2U6 78 depart(ent5id depart(ent5na(e3 $$$$$$$$$$$$$$$$$$$$$$$$$ 14. &a se a'iseze (a-i(ul salariilor (edii pe departa(ente. &ELEC (a-0avg0salar)) FR2, e(ploees #R2U6 78 depart(ent5id3 $$$$$$$$$$$$$$$$$$$$$$$$$ 19. &a se obtina codul titlul si salariul (ediu al *ob$ului pentru care salariul (ediu este (ini(. &ELEC *ob5id *ob5titleavg0salar) FR2, e(ploees >2"N *obs U&"N# 0*ob5id) #R2U6 78 *ob5id*ob5title H!"N# avg0salar)D0&ELEC (in0avg0salar)) FR2, e(ploees #R2U6 78 *ob5id)3 $$$$$$$$$$$$$$$$$$$$$$$$$
1:. &a se a'iseze salariul (ediu din 'ir(a doar daca acesta este (ai (are dec� t %:BB. 0clauza H!"N# 'ara #R2U6 78) &ELEC !#0salar) FR2, e(ploees H!"N# avg0salar)@%:BB3 $$$$$$$$$$$$$$$$$$$$$$$$$ 1<. &a se a'iseze su(a salariilor pe departa(ente si uri.
�
n cadrul acestora pe *ob$
&ELEC depart(ent5id*ob5id su(0salar) FR2, e(ploees #R2U6 78 depart(ent5id*ob5id3 $$$$$$$$$$$$$$$$$$$$$$$$$ 1=. &a se a'iseze nu(ele departa(entului si cel (ai (ic salariu din departa(entul avand cel (ai (are salariu (ediu. &ELEC depart(ent5id depart(ent5na(e(in0salar) FR2, e(ploees *oin depart(ents using 0depart(ent5id) #R2U6 78 depart(ent5id depart(ent5na(e H!"N# avg0salar)@D0&ELEC (a-0avg0salar)) FR2, e(ploees #R2U6 78 depart(ent5id)3 $$$$$$$$$$$$$$$$$$$$$$$$$ 1. &a se a'iseze codul nu(ele departa(entului si nu(arul de anga*ati care lucreaza in acel departa(ent pentru a) departa(entele in care lucreaza (ai putin de 9 anga*ati3 b) departa(entul care are nu(arul (a-i( de anga*ati. a) &ELEC depart(ent5id depart(ent5na(ecount0e(ploee5id) FR2, e(ploees R"#H >2"N depart(ents U&"N# 0depart(ent5id) #R2U6 78 depart(ent5id depart(ent5na(e H!"N# count0e(ploee5id)93 b) &ELEC depart(ent5id depart(ent5na(ecount0e(ploee5id) FR2, e(ploees R"#H >2"N depart(ents U&"N# 0depart(ent5id) #R2U6 78 depart(ent5id depart(ent5na(e H!"N# count0e(ploee5id)@D0&ELEC (a-0count0e(ploee5id)) FR2, e(ploees #R2U6 78 depart(ent5id)3 $$$$$$$$$$$$$$$$$$$$$$$$$ "C" , R,& 1A. &a se a'iseze salariatii care au 'ost anga*ati � n aceeasi zi a lunii � n care cei (ai (ulti dintre salariati au 'ost anga*ati. &ELEC G FR2, e(ploees WHERE 25CHR0+ire5datedd)"N 0&ELEC to5c+ar0+ire5datedd) FR2, e(ploees #R2U6 78 to5c+ar0+ire5datedd) H!"N# count0e(ploee5id) "N 0&ELEC (a-0count0e(ploee5id)) FR2, e(ploees #R2U6 78 to5c+ar0+ire5datedd)))3
$$$$$$$$$$$$$$$$$$$$$$$$$ %B. &a se obtina nu(arul departa(entelor care au cel putin 1: anga*ati. &ELEC count0G) FR2, 0&ELEC depart(ent5id count0e(ploee5id) FR2, e(ploees #R2U6 78 depart(ent5id H!"N# count0e(ploee5id)@D1:)3 $$$$$$$$$$$$$$$$$$$$$$$$$ %1. &a se obtina codul departa(entelor si su(a salariilor anga*atilor care lucreaza �n acestea � n ordine crescatoare. &e considera departa(entele care au (ai (ult de 1B anga*ati si al caror cod este di'erit de 4B. &ELEC depart(ent5id su(0salar) count0e(ploee5id) FR2, e(ploees WHERE depart(ent5id@4B #R2U6 78 depart(ent5id H!"N# count0e(ploee5id)@1B3 $$$$$$$$$$$$$$$$$$$$$$$$$ %%. &a se a'iseze codul nu(ele departa(entului nu(arul de anga*ati si salariul (ediu din departa(entul respectiv i(preuna cu nu(ele salariul si *obul anga*atilor din acel departa(ent. &e vor a'isa si departa(entele 'ara anga*ati 0outer *oin). &ELEC d.depart(ent5id depart(ent5na(ecount0coleg.e(ploee5id) round0avg0coleg.salar)%)ang.last5na(eang.salarang.*ob5id FR2, e(ploees ang >2"N e(ploees coleg 2N ang.depart(ent5idDcoleg.depart(ent5id R"#H >2"N depart(ents d 2N ang.depart(ent5idDd.depart(ent5id #R2U6 78 d.depart(ent5iddepart(ent5na(eang.last5na(eang.salarang.*ob5id3 $$$$$$$$$$$$$$$$$$$$$$$$ %4. &crieti o cerere pentru a a'isa pentru departa(entele avand codul @ B salariul total pentru 'iecare *ob din cadrul departa(entului. &e vor a'isa orasul nu(ele departa(entului *obul si su(a salariilor. &e vor etic+eta coloanele corespunzator.
&ELEC depart(ent5iddepart(ent5na(ecit*ob5idsu(0salar) FR2, e(ploees >2"N depart(ents U&"N# 0depart(ent5id) >2"N locations U&"N# 0location5id) $$WHERE depart(ent5id@B #R2U6 78 depart(ent5iddepart(ent5na(e *ob5idcit H!"N# depart(ent5id@B3 $$$$$$$$$$$$$$$$$$$$$$$$ %9. Care sunt anga*atii care au (ai avut cel putin doua *oburi? &ELEC e(ploee5id FR2, *ob5+istor #R2U6 78 e(ploee5id H!"N# count0*ob5id)@D%3 $$$$$$$$$$$$$$$$$$$$$$$$ %:. &a se calculeze co(isionul (ediu din 'ir(a lu� nd din tabel.
�
n considerare toate liniile
&ELEC avg0co((ission5pct) count0co((ission5pct) FR2, e(ploees3 ????sta????? $$$$$$$$$$$$$$$$$$$$$$$$ %<. nalizati cele % e-e(ple prezentate (ai sus 0""" R2LLU6 si CU7E.
�
"!) re'eritor la operatorii
$$$$$$$$$$$$$$$$$$$$$$$$ %=. &crieti o cerere pentru a a'isa *ob$ul salariul total pentru *ob$ul respectiv pe departa(ente si salariul total pentru *ob$ul respectiv pe departa(entele 4B :B B. &e vor etic+eta coloanele corespunzator. Rezultatul va aparea sub 'or(a de (ai *os >ob ;ep4B ;ep:B ;epB otal $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ����.
$$$$$$$$$$$$$$$$$$$$$$$$ %. &a se creeze o cerere prin care sa se a'iseze nu(arul total de anga*ati si din acest total nu(arul celor care au 'ost anga*ati � n 1AA= 1AA 1AAA si %BBB. ;enu(iti capetele de tabel in (od corespunzator. &ELEC C2UN0G) total 0&ELEC C2UN0G) FR2, e(ploees WHERE to5c+ar0+ire5date)D1AA=) I1AA=I 0&ELEC C2UN0G) FR2, e(ploees WHERE to5c+ar0+ire5date)D1AA) I1AAI 0&ELEC C2UN0G) FR2, e(ploees WHERE to5c+ar0+ire5date)D1AAA) I1AAAI 0&ELEC C2UN0G) FR2, e(ploees WHERE to5c+ar0+ire5date)D%BBB) I%BBBI FR2, e(ploees #R2U6 78 (ancare3 $$$$$$$$$$$$$$$$$$$$$$$$ %A. Rezolvati proble(a %% cu a*utorul subcererilor speci'icate &ELEC d.depart(ent5id depart(ent5na(e ang.last5na(eang.salarang.*ob5id 0select count0e(ploee5id) FR2, e(ploees WHERE depart(ent5idDang.depart(ent5id) NU,R 0select round0avg0salar)%) FR2, e(ploees WHERE depart(ent5idDang.depart(ent5id) (edie FR2, e(ploees ang R"#H >2"N depart(ents d 2N ang.depart(ent5idDd.depart(ent5id3
�
n clauza &ELEC.
$$$$$$$$$$$$$$$$$$$$$$$$ 4B. &a se a'iseze codul nu(ele departa(entului si su(a salariilor pe departa(ente. &ELEC depart(ent5id depart(ent5na(e su(0salar) FR2, e(ploees >2"N depart(ents U&"N# 0depart(ent5id) #R2U6 78 depart(ent5id depart(ent5na(e $$$$$$$$$$$$$$$$$$$$$$$$ 41. &a se a'iseze nu(ele salariul codul departa(entului si salariul (ediu din departa(entul respectiv. &ELEC last5na(esalare.depart(ent5id 0&ELEC avg0salar) FR2, e(ploees WHERE depart(ent5idDd.depart(ent5id) (edie FR2, e(ploees e *oin depart(ents d 2N e.depart(ent5idDd.depart(ent5id3 $$$$$$$$$$$$$$$$$$$$$$$$ 4%. ,odi'icati cererea anterioara pentru a deter(ina si listarea nu(arului de anga*ati din departa(ente. &ELEC last5na(esalare.depart(ent5id 0&ELEC avg0salar) FR2, e(ploees WHERE depart(ent5idDd.depart(ent5id) (edie 0&ELEC count0e(ploee5id) FR2, e(ploees WHERE depart(ent5idDd.depart(ent5id) nr FR2, e(ploees e *oin depart(ents d 2N e.depart(ent5idDd.depart(ent5id3 $$$$$$$$$$$$$$$$$$$$$$$$ 44. 6entru 'iecare departa(ent sa se a'iseze nu(ele acestuia nu(ele si salariul celor (ai prost platiti anga*ati din cadrul sau. &ELEC last5na(e salar depart(ent5id FR2, e(ploees e WHERE salar D 0&ELEC (in0salar) FR2, e(ploees WHERE depart(ent5idDe.depart(ent5id)3 $$$$$$$$$$$$$$$$$$$$$$$ 49. Rezolvati proble(a %% cu a*utorul subcererilor speci'icate
�
n clauza FR2,.
&ELEC d.depart(ent5id depart(ent5na(e ang.last5na(eang.salarang.*ob5idnr(edie FR2, e(ploees ang R"#H >2"N depart(ents d 2N ang.depart(ent5idDd.depart(ent5id LEF >2"N 0&ELEC depart(ent5id count0e(ploee5id) nr round0avg0salar)%) (edie FR2, e(ploees #R2U6 78 depart(ent5id) au2N au-.depart(ent5idDang.depart(ent5id3 $$$$$$$$$$$$$$$$$$$$$$$