SQL,PL/SQL – Grupowanie danych – Oracle 10/11 cz.11

Print Friendly, PDF & Email

1) Group By:

Dzi─Öki grupowaniu jeste┼Ťmy w stanie ograniczy─ç dane do takich, kt├│re posiadaj─ů wsp├│lny mianownik.
Po ograniczeniu zakresu danych mo┼╝emy skorzysta─ç z funkcji agreguj─ůcych.

Wybierzemy tych Manger├│w, kt├│rzy maj─ů ID r├│┼╝ne od null:

SELECT location_id FROM departments WHERE manager_id is not null;

Wy┼Ťwietlimy numery lokalizacji oraz ilo┼Ť─ç departament├│w, kt├│re posiadaj─ů przydzielonego managera:

SELECT location_id, count(*)  from departments where manager_id is not null GROUP BY location_id;



Na koniec poka┼╝emy te lokalizacje, kt├│re maj─ů wi─Öcej ni┼╝ jedn─ů lokalizacj─Ö, tutaj mo┼╝emy wykorzysta─ç s┼éowo kluczowe HAVING, zamiast WHERE, kt├│re jest niedost─Öpne podczas grupowania:


SELECT location_id, count(*)  from departments where manager_id is not null GROUP BY location_id HAVING count(*)>1;




2) Rollup:

Polecenie ROLLUP grupuje dane wed┼éug wskazanych kolumn w spos├│b hierarchiczny. U┼╝ycie ROLLUP(a, b, c) spowoduje wygenerowanie nast─Öpuj─ůcych grupowa┼ä: (a, b, c), (a, b), (a) oraz rekordu agreguj─ůcego ca┼éy zbi├│r. Inaczej m├│wi─ůc, u┼╝ycie w zapytaniu konstrukcji ROLLUP(a, b, c) jest r├│wnowa┼╝ne z wykonaniem czterech zapyta┼ä po┼é─ůczonych klauzul─ů UNION ALL, gdzie ka┼╝de zapytanie posiada odpowiedni─ů klauzul─Ö GROUP BY. Poni┼╝szy przyk┼éad pokazuje dzia┼éanie polecenia ROLLUP:

SELECT department_id, manager_id, sum(salary)  from employees group by rollup(department_id, manager_id) order by department_id, manager_id;







Dzi─Ökuj─Ö Ci, za po┼Ťwi─Öcony czas na przeczytanie tego artyku┼éu. Je┼Ťli by┼é on dla Ciebie przydatny, to gor─ůco zach─Öcam Ci─Ö do zapisania si─Ö na m├│j newsletter, je┼╝eli jeszcze Ci─Ö tam nie ma. Prosz─Ö Ci─Ö tak┼╝e o ÔÇťpolubienieÔÇŁ mojego bloga na Facebooku oraz kana┼éu na YouTube ÔÇô pomo┼╝e mi to dotrze─ç do nowych odbiorc├│w. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artyku┼éach / projektach zanim stan─ů si─Ö publiczne. Mo┼╝esz r├│wnie┼╝ pozostawi─ç ca┼ékowicie anonimowy pomys┼é na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw r├│wnie┼╝ komentarz lub napisz do mnie wiadomo┼Ť─ç odpisuj─Ö na ka┼╝d─ů, je┼╝eli Masz jakie┼Ť pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT