Cap6a SQLOracle Functii Agregat

download Cap6a SQLOracle Functii Agregat

of 2

description

Baze de date-Oracle

Transcript of Cap6a SQLOracle Functii Agregat

  • Tudor N. L., SISTEME INFORMATICE SI GESTIUNEA BAZELOR DE DATE ORACLE, Editura MATRIX ROM, Bucureti, ISBN 978-973-755-745-2, 2011, 109 pag.

    71

    CAPITOLUL 6

    FUNCII AGREGAT. GRUPAREA TUPLURILOR

    6.1. Funcii agregat

    Funciile agregat (funciile de grup) grupeaz nregistrrile, genernd un singur rezultat pentru grup. Comanda SELECT ce utilizeaz funcii

    agregat trebuie s respecte sintaxa [14]:

    SELECT [coloan,] funcie_grup(coloan); FROM tabel; [WHERE condiie;] [ORDER BY coloan]

    Exemple de funcii agregat folosite n limbajul SQL Oracle sunt urmtoarele:

    Funcia COUNT numr cte valori diferite de NULL are o coloan

    specificat sau cte linii are tabelul; COUNT(*) returneaz numrul de linii dintr-un tabel. Funcia COUNT(*) numr i valorile duplicate. Funcia SUM calculeaz suma valorilor din coloana specificat ca argument al funciei.

    Funcia AVG calculeaz media aritmetic a valorilor din coloana specificat ca argument al funciei.

    Funcia MIN returneaz minimul valorilor din coloana specificat ca argument al funciei.

    Funcia MAX returneaz maximul valorilor din coloana specificat ca argument al funciei.

  • Tudor N. L., SISTEME INFORMATICE SI GESTIUNEA BAZELOR DE DATE ORACLE, Editura MATRIX ROM, Bucureti, ISBN 978-973-755-745-2, 2011, 109 pag.

    72

    Exemple: - S se afieze valoarea maxim, valoarea medie, valoarea minim i valoarea total a comenzilor:

    SELECT avg( valoare) as Valoare_medie, max(valoare), min(valoare), sum(valoare) as SUMA FROM comenzi;

    - S se afieze data primei comenzi ncheiate i data celei mai vechi

    comenzi ncheiate:

    SELECT min(data), max(data) FROM comenzi; - S se afieze numrul de comenzi a cror valoare >100 000:

    SELECT count(*) Numar_comenzi FROM comenzi WHERE valoare > 100000;

    - S se afieze numrul total de comenzi incheiate: SELECT count(nrcom) Numar_Comenzi FROM comenzi;

    ncuibarea funciilor agregat (folosirea unei funcii agregat ca argument pentru o alt funcie agregat) este permis n limbajul SQL Oracle:

    Exemple: Afiai maximul dintre valorile medii ale comenzilor ncheiate de fiecare agent:

    Faza 1: SELECT avg(valoare), codagent FROM comenzi GROUP BY codagent;

    Faza 2: SELECT max(avg(valoare)) FROM comenzi GROUP BY codagent;