From b33913dfcece78be09326fa9bb930250502f03db Mon Sep 17 00:00:00 2001 From: bogdandjelkovic <97684633+bogdandjelkovic@users.noreply.github.com> Date: Thu, 25 Apr 2024 14:15:21 +0200 Subject: [PATCH] Update 09.md --- vezbe/09.md | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/vezbe/09.md b/vezbe/09.md index e69de29..86c7369 100644 --- a/vezbe/09.md +++ b/vezbe/09.md @@ -0,0 +1,100 @@ +### 1. Koliko je svake godine odigrano utakmica. (godina, broj_odigranih_utakmica) + +```sql +select s.godina, count(*) as broj_odigranih_utakmica +from utakmice u +inner join sezona s +on u.id_sezone = s.id +group by s.godina +``` + +### 2. Igrač koji je sklopio ugovor na najduži period. (id_igraca, period_u_danima) + +```sql +select id_igraca, DATEDIFF(Day, datum1, datum2) as 'broj_dana' +from ugovori +where DATEDIFF(Day, datum1, datum2) = +( + select MAX(DATEDIFF(day, u.datum1, u.datum2)) + from ugovori u +) +``` + +### 3. Za svakog igrača koliko je postigao ukupno golova računajući i autogolove(ugnježdeni).(ime, broj_golova) - nije dozvoljeno koristiti join mehanizam. + +```sql +select i.ime, +( + select count(*) + from golovi g + where g.id_igraca = i.id +) as broj_golova +from igraci i +``` + +### 4. Spisak fudbalera koji su odigrali više od 3 utakmice u nekoj od sezona. (godina, id_igraca, broj_utakmica) + +```sql +select s.godina, ug.id_igraca, count(*) +from utakmice ut +inner join sezona s +on ut.id_sezone = s.id +inner join ugovori ug +on ug.id_tima in (ut.id_domacina, ut.id_gosta) and + s.godina between year(ug.datum1) and year(ug.datum2) +group by s.godina, ug.id_igraca +having count(*) > 3 +``` + +### 5. Rezultat svake utakmice. (id_utakmice, nazivTimaDomacina, nazivTimaGosta,rezultati) - rezultat treba da bude u formatu “brojGolovaDomacina:brojGolovaGosta” + +```sql +select u.id, d.naziv, g.naziv, concat( +( + select count(*) + from golovi g1 + where g1.id_utakmice = u.id and g1.id_tima = u.id_domacina +), +':', +( + select count(*) + from golovi g2 + where g2.id_utakmice = u.id and g2.id_tima = u.id_gosta +)) as rezultat +from utakmice u +inner join timovi d +on u.id_domacina = d.id +inner join timovi g +on u.id_gosta = g.id +``` + +### 6. Igrač sa najviše postignutih autogolova. (id_igraca, ime, broj_autogolova + +```sql +go +create view autoGolovi +as +select g.id_igraca, i.ime, count(*) as 'broj_auto_golova' +from golovi g +inner join igraci i +on g.id_igraca = i.id +inner join utakmice u +on g.id_utakmice = u.id +inner join sezona s +on u.id_sezone = s.id +inner join ugovori ug +on + g.id_igraca = ug.id_igraca and + g.id_tima != ug.id_tima and + s.godina between year(ug.datum1) and year(ug.datum2) +group by g.id_igraca, i.ime +go + +select ime, broj_auto_golova +from autoGolovi +where broj_auto_golova = +( + select max(broj_auto_golova) + from autoGolovi +) +```