|
Politica de confidentialitate |
|
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
Functii de grup - ORACLE | ||||||
|
||||||
g6z20zl Acest capitol explica cum informatiile concise pot fi obtinute pen- tru grupuri de siruri folosind functiile de grup. Vom discuta cum puteti divide sirurile dintr-o tabela in seturi mai mici si cum sa specificati criteriile de cautare intr-un grup de siruri. Functiile de grup se aplica unui set de siruri.Ele intorc rezultate bazate pe grupuri de siruri , spre deosebire de un rezultat pe sir care e returnat de functii singulare.De regula , toate sirurile din tabela sunt tratate ca un grup.Clauza GROUP BY din cadrul lui SELECT e folosita pentru a imparti sirurile in grupuri mai mici. Functiile de grup sunt listate mai jos: Valoare returnata AVG(ADISTINCT/ALLS) valoarea medie a lui n, ignorind valorile nule.COUNT(ADISTINCT/ALLS expr*) nr. de siruri unde expresia e evaluata la altceva decit NULL. (*) face ca COUNT sa numere toate sirurile selectate, incluzind duplicatele si sirurile cu NULL. MAX(ADISTINCT/ALLSexpr) maximul valorilor expr. MIN(ADISTINCT/ALLSexpr)D minimul valorilor expresiei expr. STDDEV(ADISTINC/ALLSn) deviatia standard a lui n , ignorind valorile nule. SUM(ADISTINC/ALLSn) suma valorilor lui n , ignorind valorile nule. VARIANCE(ADISTINCT/ALLSn) variatia lui n , ignorind valorile nule. Toate functiile de deasupra opereaza pe un nr. de siruri (de ex., o intreaga tabela) si sunt cunoscute ca functii de grup sau agregate. DISTINCT face ca functia de grup sa considere doar valorile(nedupli- cate). ALL considera fiecare valoare , incluzind si toate duplicatele. Implicit este
ALL. FUNCTII DE GRUP SELECT AVG(SAL) FROM EMP; AVG(SAL) -------- 2073.21429 Notati ca liniile din tabela EMP sint considerate ca un singur grup.O functie de grup poate fi aplicata pe un subset de linii din tabela prin folosirea clauzei WHERE. Pentru a gasi salariul minim cistigat de un functionar, introducem : SELECT MIN(SAL) FROM EMP WHERE JOB = 'CLERK'; MIN(SAL) -------- 800 Pentru a numara angajatii din departamentul 20, introducem :SELECT COUNT(*) FROM EMP WHERE DEPTNO = 20; COUNT(*) -------- 5 Clauza GROUP BYClauza GROUP BY poate fi folosita pentru a imparti liniile dintr-o tabela in grupuri mai mici. Functiile de rup pot fi folosite pentru a intorece informatii sumare pentru fiecare grup. Pentru a calcula salariul mediu pentru fiecare functie diferita, introducem: SELECT JOB, AVG(SAL) FROM EMP GROUP BY JOB; JOB AVG(SAL) ------- ----------- ANALYST 3000 CLERK 1037.5 MANAGER 2758.33333 PRESIDENT 5000 SALESMAN 1400 Excluderea liniilor cind folosim GROUP BYLiniile pot fi excluse mai intii cu o clauza WHERE, inainte de a le imparti in grupuri. Pentru a determina salariul mediu pentru fiecare functie in afara de manager, introducem : SELECT JOB, AVG(SAL) FROM EMP WHERE JOB != 'MANAGER' GROUP BY JOB; JOB AVG(SAL) ------- ----------- ANALYST 3000 CLERK 1037.5 PRESIDENT 5000 SALESMAN 1400 SolutiiSELECT MIN(SAL) MINIMUM FROM EMP; SELECT MAX(SAL), MIN(SAL), AVG(SAL) FROM EMP; SELECT JOB, MAX(SAL) MAXIMUM, MIN(SAL) MINIMUM FROM EMP GROUP BY JOB; SELECT COUNT(*) MANAGERS FROM EMP WHERE JOB = 'MANAGER'; SELECT JOB, AVG(SAL) AVSAL, AVG(SAL * 12 + NVL(COMM, 0)) AVCOMP FROM EMP GROUP BY JOB; SELECT MAX(SAL) - MIN(SAL) DIFFERENCE FROM EMP; SELECT DEPTNO, COUNT(*) FROM EMP GGROUP BY DEPTNO HAVING COUNT(*) > 3; SELECT EMPNO FROM EMP GROUP BY EMPNO HAVING COUNT(*) > 1; SELECT MGR, MIN(SAL) FROM EMP GROUP BY MGR HAVING MIN(SAL) >= 1000 ORDER BY MIN(SAL); |
||||||
|
||||||
|
||||||
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite |
|