Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » referate » informatica » sql
Optiunile de grupare si regrupare

Optiunile de grupare si regrupare


Optiunile de grupare si regrupare

Optiunile de grupare si regrupare sunt facilitati de consultare care permit crearea unor entitati de tupluri ale unei tabele /relatii avand valori comune pentru un camp /coloana. In acest caz formatul general al frazei SELECT este:

SELECT <camp1> [, <camp2>,.]

FROM <nume_tabela1> [,<nume_tabela2>.]

GROUP BY <camp1 de regrupare>[,<camp2 de regrupare>.]

[HAVING <conditie>] [UNION [ALL] SELECT comanda

Rezultatul unei astfel de fraze SELECT este o noua tabela in care vor fi grupate /regrupate toate liniile tabelei /tabelelor specificate prin FROM si care au aceleasi valori pentru campul sau campurile specificate prin GROUP BY. Practic se genereaza un singur tuplu pentru fiecare grup de tupluri. Deoarece clauza GROUP BY grupeaza tuplurile dupa valoarea unor atribute /campuri se introduc restrictii in ceea ce priveste lista de atribute ce apar in fraza SELECT. Atributele care pot aparea pot fi de doua tipuri:

-atribute care alcatuiesc baza pentru grupare (cele specificate in clauza GROUP BY) ;

-functii agregat (AVG(), SUM(), MAX(), MIN(), COUNT() ) aplicate asupra atributelor.

Exemplu: Plecand de la relatia student.dbf cu urmatorul continut:

sa se obtina o noua relatie in care sa se regaseasca specializarile existente in cadrul facultatii.

Fraza SELECT va avea urmatorul format:

SELECT Specializ FROM student GROUP BY Specializ

In urma interogarii se obtine o noua relatie cu o singura coloana (Specializ), in care implicit specializarile sunt ordonate alfabetic.

Exemplu: Plecand de la tabela op-trezor.dbf cu urmatorul continut:

sa se stabileasca media zilnica a alimentarilor.



Fraza SELECT va avea urmatorul format:

SELECT Data_op, AVG(Alimentare) ;

FROM op-trezor;

GROUP BY Data_op

Se observa ca tabela rezultat contine un numar de linii egal cu numarul datelor calendaristice distincte din tabela op_trezor.dbf, returnand prin functia AVG() media alimentarilor pentru fiecare zi. Exemplu: Plecand de la tabela student.dbf, prezentata anterior sa se stabileasca numarul studentilor in functie de orasul de domiciliu. Fraza SELECT va fi:

SELECT Oras, Codpostal, COUNT(*) FROM student GROUP BY Oras

Rezultatul executiei acestei fraze este:

Clauza HAVING este legata de clauza GROUP BY si permite introducerea unor restrictii aplicate asupra unui grup de tupluri.

Clauza HAVING poate contine una sau mai multe conditii legate prin operatorii logici AND si /sau OR. Continand conditii, clauza HAVING mai este numita si clauza WHERE pentru grupuri de tupluri.

Exemplu: Plecand de la tabela op_trezor.dbf sa se calculeze media alimentarilor pe zile si sa se returneze numai grupurile pentru care media alimentarilor >25000000 lei.

SELECT Data_op, AVG(Alimentare) ;FROM op_trezor ;

GROUP BY Data_op HAVING AVG(Alimentare)>25000000

Din interogare rezulta o tabela cu trei tupluri reprezentand media depunerilor mai mari decat 25000000 lei (respectiv pentru zilele de 14, 22 martie si 11 aprilie 2000).

Exemplu: Plecand de la noua varianta a tabelei op_trezor.dbf:

sa se stabileasca, pe zile,grupurile pentru care platile se incadreaza intre10000000 lei si 22000000 lei. Pentru aceasta interogare fraza SELECT se prezinta astfel:

SELECT Data_op, MIN(Plati), MAX(Plati) FROM op-trezor GROUP BY Data_op ;

HAVING MIN(Plati)>=10000000 AND MAX(Plati)<=22000000

Prin executia acestei fraze SELECT se obtine:

Rezultatul interogarii este o relatie cu doua tupluri ce corespund zilelor in care platile se incadreaza in limitele stabilite prin clauza HAVING.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.