CATEGORII DOCUMENTE |
GRUPAREA DATELOR - ORACLE
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(
valoarea medie a lui n, ignorind valorile nule.
COUNT( 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(expr)
maximul valorilor expr.
MIN(expr)D
minimul valorilor expresiei expr.
STDDEV(n)
deviatia standard a lui n , ignorind valorile nule.
SUM(n)
suma valorilor lui n , ignorind valorile nule.
VARIANCE(n)
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.
Tipul datelor argumentelor poate fi CHAR,NUMBER sau
DATA unde expr e listata.
Toate fuctiile de grup cu exceptia lui COUNT(*) ignora
valorile nule. Folositi NVL ca de obicei pentru a include null.
Folosirea functiilor de grup
Pentru a calcula salriul mediu al tuturor angajatilor, introducem :
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 BY
Clauza 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 BY
Liniile 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
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1040
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved