07.11 - vežbe - 2.grupa (Grupisanje podatka – GROUP BY i HAVING klauzule)
Osnovne pojmove proučiti na sledećem web sajtu (LINK u nastavku):
Grupisanje podatka – GROUP BY i HAVING klauzule
(https://www.doit.rs/grupisanje-podatka-group-by-i-having-klauzule/)
Za potrebe vežbi koristićemo bazu IzlozbaPasa :
Desni klik i sačuvajte fajl za kreitanje i popunjavanje baze KreirajBazuIzlozbaPasa.sql
Otvorite ovaj sql fajl i izvršite upit (Sql Server Management Studio)
Dalje radimo upite nad tabelama u ovoj bazi
use IzlozbaPasa;
U nastavku su upiti koji su rađeni u učionici, prva grupa:
Ispisati sve podatke koji se nalaze u tabeli Pas
select * from Pas;
Ispisati imena svih pasa
select Ime from Pas;
Ispisati imena pasa kojima ime počinje na slovo 'A'
select Ime from Pas where Ime LIKE 'A%';
Ispisati imena pasa kojima ime završava na slovo 'A'
select Ime from Pas where Ime LIKE '%A';
Ispisati koliko redova ima u tabeli Pas
select COUNT(*) from Pas;
Ispisati broj pasa koji imaju popunjeno polje 'Ostenjen'
select COUNT(Ostenjen) from Pas;
Ispisati koja je najveća težina u tabeli Pas
select MAX(Tezina) from Pas;
Ispisati ime i težinu psa koji je najteži (koristimo podupit)
select Ime, Tezina from Pas where Tezina=(select MAX(Tezina)from Pas);
Za svakog psa u tabeli ispisati vrednost polja RasaID
select RasaID from Pas;
Ispisati RasaID iz tabele Pas BEZ PONAVLJANJA (bez duplikata)
select distinct RasaID from Pas;
Za svaki od RasaID ispisati koliko pasa ima
select RasaID, COUNT(Ime) from Pas group by RasaID;
Za svaki od RasaID ispisati koliko ima pasa težih od 30
select RasaID, COUNT(Ime) from Pas where Tezina>30 group by RasaID;
Za svaki od RasaID ispisati koliko pasa ima, ali filtrirati dobijene grupe tako da se razultat prikaže samo za one RasaID gde ima više od 5 pasa (koristiti HAVING)
select RasaID, COUNT(Ime) from Pas group by RasaID HAVING COUNT(Ime)>5;
Ispisati imena pasa kojima je težina veća od proseka u tabeli
select Ime from Pas where Tezina>(select AVG(Tezina) from Pas);
Za svaki od RasaID ispisati prosečnu težinu pasa u toj grupi
select RasaID, AVG(Tezina) from Pas group by RasaID;
Za svaki od RasaID ispisati prosečnu težinu pasa u toj grupi a onde filtrirati rezultate tako da se prikaže samo za one RasaID gde je prosečna težina veća od 10
select RasaID, AVG(Tezina) from Pas group by RasaID HAVING AVG(Tezina)<10;
Ispisati najmanju težinuu tabeli Pas
select MIN(Tezina) from Pas;