--1 --select distinct ir.naziv, --coalesce(dayname(datpolaganja, 'sr_Latn_SR'), 'nepoznat datum') dan --from da.ispitnirok ir join da.ispit i -- on ir.skgodina=i.skgodina and -- ir.oznakaroka=i.oznakaroka --where ir.skgodina between 2000 and 2020 -- --union -- --select ir.naziv, 'nije bilo ispita' --from da.ispitnirok ir --where ir.skgodina between 2000 and 2020 --and not exists (select * -- from da.ispit i -- where ir.skgodina=i.skgodina and -- ir.oznakaroka=i.oznakaroka) --order by naziv; --2 --select count(*) broj_studenata --from da.dosije; --3 --select count(distinct indeks) broj_studenata --from da.ispit --where ocena=10; --4 --select count(*) broj_predmeta, sum(p.espb) broj_bodova --from da.ispit i join da.predmet p on i.idpredmeta=p.id --where i.ocena>5 and i.status='o' and i.indeks=20160025; --5 --select nullif(ocena, 5) --from da.ispit; --6 --select count(distinct nullif(ocena, 5)) --from da.ispit; --7 --select oznaka, naziv, espb --from da.predmet --where espb> (select avg(espb) -- from da.predmet); --8 --select d.indeks, -- avg(ocena+0.0) as prosek, -- min(ocena) as najmanja_ocena, -- max(ocena) as najveca_ocena --from da.dosije d join da.ispit i on d.indeks=i.indeks --where year(datupisa)=2018 and ocena>5 and status='o' --group by d.indeks; --9 --select skgodina, naziv,max(ocena) as najveca_ocena --from da.ispit i join da.predmet p on i.idpredmeta=p.id --group by skgodina, naziv, id; --10 --select p.id, count(indeks) as polozilo --from da.predmet p left outer join da.ispit i -- on p.id=i.idpredmeta and ocena>5 and status='o' --group by p.id --order by polozilo; -- -- ili -- --select id, (select count(*) -- from da.ispit i -- where i.idpredmeta=p.id and ocena>5 -- and status='o') as polozilo --from da.predmet p --order by polozilo ; -- ili --select idpredmeta, count(indeks) as polozilo --from da.ispit --where ocena>5 and status='o' --group by idpredmeta --union --select id, 0 --from da.predmet p --where not exists ( select * -- from da.ispit i -- where p.id=i.idpredmeta and ocena>5 -- and status='o') --order by 2; --11 --select idpredmeta, count(distinct indeks) broj_studenata --from da.ispit --group by idpredmeta --having count(distinct indeks)>50 --order by broj_studenata; -- --select idpredmeta --from da.ispit --group by idpredmeta --having count(distinct indeks)>50; --12 --select oznakaroka, -- count(*) as broj_ispita, count(distinct indeks) broj_studenata --from da.ispit --where skgodina=2016 and status='o' --group by oznakaroka --having min(ocena)>5; --ili --select oznakaroka, -- count(*) as broj_ispita, -- count(distinct indeks) broj_studenata --from da.ispit --where status='o' --group by skgodina, oznakaroka --having skgodina=2016 and min(ocena)>5; --13 --select indeks, monthname(datpolaganja) as mesec, count(*) as broj_predmeta --from da.ispit --where ocena>5 and status='o' --group by indeks, monthname(datpolaganja) --having count(*) > 2 --order by indeks, monthname(datpolaganja); --obratiti pažnju da ne može --select indeks, monthname(datpolaganja) as mesec, count(*) as broj_predmeta --from da.ispit --where ocena>5 and status='o' --group by indeks, monthname(datpolaganja) --having broj_predmeta > 2 --order by indeks, monthname(datpolaganja); --ali može --select indeks, monthname(datpolaganja) as mesec, count(*) as broj_predmeta --from da.ispit --where ocena>5 and status='o' --group by indeks, monthname(datpolaganja) --having count(*) > 2 --order by indeks, mesec; --14 --select naziv, coalesce(ime || ' ' || prezime, 'nema') --from da.predmet p left join da.ispit i on id=idpredmeta -- and ocena>5 and status='o' -- left join da.dosije d -- on d.indeks=i.indeks --where espb = (select min(espb) -- from da.predmet);