
--1
--with student_ocene as (
--select indeks, ocena br8, null  br9
--from ispit
--where ocena=8
--union all
--select indeks,  null br8, ocena br9
--from 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 ispit
--where ocena=8
--group by indeks
--),
--student_9 as (
--select indeks, count(*) br9
--from 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 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 ispit
--where ocena=8 or ocena=9
--group by indeks;


--2
--insert into dosije (indeks, ime, prezime, datum_rodjenja, mesto_rodjenja)
--values (20120028, 'Marko', 'Markovic', '10.5.1990', 'Kragujevac');

--3
--insert into predmet
--values (2005, 'P112', 'Uvod u arhitekturu racunara', 6),
--       (2006, 'P116', 'Razvoj softvera', 6);

--4
--insert into ispit (indeks, id_predmeta, godina_roka, oznaka_roka, ocena)
--select indeks, id_predmeta, 2015, 'jun', 9
--from dosije, predmet
--where year(datum_rodjenja)=1994 and naziv='Programiranje 2';

--5
--delete from dosije
--where year(datum_rodjenja)=1990;

--6
--delete from ispit 
--where id_predmeta  in ( select id_predmeta
--                        from predmet
--                        where naziv='Programiranje 2' or bodovi=15);

--7
--update predmet
--set bodovi=bodovi*1.2    
--where sifra like 'P%';

--8
--update ispit
--set (oznaka_roka, datum_ispita)=('jun', null)
--where id_predmeta in (select id_predmeta
--                                     from predmet
--                                     where naziv='Analiza 1') and godina_roka=2015 and oznaka_roka='jan';

--9
--update predmet
--set bodovi=(select max(bodovi)
--                   from predmet)
--where exists ( select *
--                       from ispit i join dosije d on i.indeks=d.indeks
--                      where mesto_rodjenja='Beograd' and i.id_predmeta=predmet.id_predmeta);  




--10
--with student_bodovi (indeks, polozeni_bodovi) as (
--select indeks, sum(bodovi)
--from ispit i join predmet p on i.id_predmeta=p.id_predmeta
--where ocena>5
--group by indeks )
--select d.indeks, ime, prezime, polozeni_bodovi
--from student_bodovi sb join dosije d on d.indeks=sb.indeks
--where polozeni_bodovi=(select max(polozeni_bodovi) from student_bodovi); 

--select d.indeks, ime, prezime, sum(bodovi)
--from ispit i join dosije d on i.indeks=d.indeks 
--             join predmet p on p.id_predmeta=i.id_predmeta
--where ocena>5
--group by d.indeks, ime, prezime
--having sum(bodovi)>= all(select sum(bodovi)
--                         from ispit i join predmet p on i.id_predmeta=p.id_predmeta
--                         where ocena>5
--                         group by indeks);

--11
--select d.indeks, ime, prezime, count(distinct i.id_predmeta) br_polagao, 
--                               sum(case when ocena>5 then 1 else 0 end) br_polozio, 
--                               avg(case when ocena>5 then ocena*1.0 else null end) prosek
--from dosije d join ispit i on d.indeks=i.indeks  join predmet p on i.id_predmeta=p.id_predmeta
--where ime like 'A%' or ime like '%a%' or ime like 'O%' or ime like '%o%'
--group by d.indeks, ime, prezime
--having sum(case when ocena>5 then bodovi else 0 end ) between 15 and 25
--order by d.indeks;
