--1 --select d.indeks, ime, prezime, -- count(distinct i.idpredmeta) br_polagao, -- sum(case when ocena>5 and status='o' then 1 else 0 end) br_polozio, -- dec(round(avg(case when ocena>5 and status='o' then ocena*1.0 -- else null end), 2), 4,2) prosek --from da.dosije d join da.ispit i on d.indeks=i.indeks -- join da.predmet p on i.idpredmeta=p.id --where lower(ime) like '%a%' or lower(ime) like '%o%' --group by d.indeks, ime, prezime --having sum(case when ocena>5 and status='o' then espb else 0 end ) between 15 and 25 --order by d.indeks; --2 --select d1.indeks, d1.ime, d1.prezime, d2.indeks, d2.ime, d2.prezime --from da.dosije d1, da.dosije d2 --where d1.indeks5 and i1.status='o' -- and i2.ocena>5 and i1.status='o') -- and d1.ime like 'M%' and d2.ime like 'M%'; --3 --select count(*) br_studenata --from ( --select indeks, sum(p.espb) pol_bodovi --from da.ispit i join da.predmet p on i.idpredmeta=p.id --where ocena>5 and status='o' --group by indeks) as t --where pol_bodovi>10; --ili --with student_bodovi as ( --select indeks, sum(p.espb) pol_bodovi --from da.ispit i join da.predmet p on i.idpredmeta=p.id --where ocena>5 and status='o' --group by indeks ) --select count(*) br_studenata --from student_bodovi --where pol_bodovi>10; --ili --with student_bodovi as ( --select indeks --from da.ispit i join da.predmet p on i.idpredmeta=p.id --where ocena>5 and status='o' --group by indeks --having sum(p.espb) >10 ) --select count(*) br_studenata --from student_bodovi; --4 --with student_ocene as ( --select indeks, ocena br8, null br9 --from da.ispit --where ocena=8 --union all --select indeks, null br8, ocena br9 --from da.ispit --where ocena=9) --select indeks, count(br8) broj_8, count(br9) broj_9 --from student_ocene --group by indeks; --ili --with student_8 as ( --select indeks, count(*) br8 --from da.ispit --where ocena=8 --group by indeks --), --student_9 as ( --select indeks, count(*) br9 --from da.ispit --where ocena=9 --group by indeks --) --select coalesce(s1.indeks, s2.indeks), coalesce(br8,0) broj_8, coalesce(br9, 0) broj_9 --from student_8 s1 full outer join student_9 s2 on s1.indeks=s2.indeks; --ili --select indeks, sum(case when ocena=8 then 1 else 0 end) broj_8, sum(case when ocena=9 then 1 else 0 end) broj_9 --from da.ispit --group by indeks --having sum(case when ocena=8 then 1 else 0 end)>0 or sum(case when ocena=9 then 1 else 0 end)>0; --ili --select indeks, sum(case when ocena=8 then 1 else 0 end) broj_8, sum(case when ocena=9 then 1 else 0 end) broj_9 --from da.ispit --where ocena=8 or ocena=9 --group by indeks; --5 --select ime, prezime, naziv --from da.dosije d join da.ispit i -- on d.indeks=i.indeks and ocena>5 and status='o' -- join da.predmet p -- on i.idpredmeta = p.id --where not exists (select * from da.ispit -- where idpredmeta = i.idpredmeta -- and d.indeks = indeks -- and (skgodina<>i.skgodina or -- oznakaroka<>i.oznakaroka)); --6 --select d.indeks, ime, prezime, coalesce(naziv, repeat('*', length(prezime))) --from da.dosije d left join da.ispit i -- on d.indeks=i.indeks and ocena>5 and status='o' -- left join da.predmet p -- on p.id=i.idpredmeta --where current date - datupisa <= all (select current date - datupisa -- from da.dosije); --ili --select d.indeks, ime, prezime, coalesce(naziv, repeat('*', length(prezime))) --from da.dosije d left join da.ispit i -- on d.indeks=i.indeks and ocena>5 and status='o' -- left join da.predmet p -- on p.id=i.idpredmeta --where current date - datupisa = (select min(current date - datupisa) -- from da.dosije); --7 --with student_bodovi (indeks, polozeni_bodovi) as ( --select indeks, sum(espb) --from da.ispit i join da.predmet p on i.idpredmeta=p.id --where ocena>5 and status='o' --group by indeks ) --select d.indeks, ime, prezime, polozeni_bodovi --from student_bodovi sb join da.dosije d on d.indeks=sb.indeks --where polozeni_bodovi=(select max(polozeni_bodovi) from student_bodovi); --select d.indeks, ime, prezime, sum(espb) --from da.ispit i join da.dosije d on i.indeks=d.indeks -- join da.predmet p on p.id=i.idpredmeta --where ocena>5 and status='o' --group by d.indeks, ime, prezime --having sum(espb)>= all(select sum(espb) -- from da.ispit i join da.predmet p -- on i.idpredmeta=p.id -- where ocena>5 and ocena>5 -- group by indeks); --8 --with pom as --(select indeks, oznakaroka, skgodina, --decimal(avg(case when ocena>5 and status='o' then 100.0 else 0 end),5,2) uspesnost --from da.ispit --group by indeks, oznakaroka, skgodina -- --) --select ime, prezime, naziv, uspesnost --from pom p join da.dosije d -- on d.indeks = p.indeks -- join da.ispitnirok ir -- on ir.skgodina = p.skgodina and ir.oznakaroka = p.oznakaroka --where mestorodjenja='Arandjelovac' --and not exists (select * from pom -- where indeks<>d.indeks -- and skgodina = p.skgodina -- and oznakaroka = p.oznakaroka -- and uspesnost < p.uspesnost) -- and uspesnost = (select min(uspesnost) -- from pom -- where indeks = p.indeks) ; --9 --select d.ime, p.naziv, i.ocena, -- case -- when ocena is null then 'NULL' -- when ocena=10 then repeat(substr(d.ime, length(d.ime)), 10) -- else repeat(substr(d.ime, 1, 1)||substr(p.naziv, 1, 1), ocena) -- end as "dugi kod" --from da.dosije d left join da.ispit i on d.indeks=i.indeks -- left join da.predmet p on i.idpredmeta=p.id --where not exists(select * -- from da.ispit i1 join da.dosije d1 on i1.indeks=d1.indeks -- where d1.ime=d.ime and ocena>i.ocena);