--1 --create table polozeni_predmeti ( --indeks integer not null, --id_predmeta integer not null, --godina_roka smallint not null, --oznaka_roka char(5) not null, --ocena smallint not null, --datum_ispita date, --bodovi smallint, --primary key(indeks, id_predmeta, godina_roka, oznaka_roka), --foreign key fk_ispit (indeks, id_predmeta, godina_roka, oznaka_roka) references ispit, --constraint vrednost_ocene check (ocena between 6 and 10) --); -- ako postoji ogranicenje da student moze poloziti predmet samo jedanput onda moze --create table polozeni_predmeti ( --indeks integer not null, --id_predmeta integer not null, --godina_roka smallint not null, --oznaka_roka char(5) not null, --ocena smallint not null, --datum_ispita date, --bodovi smallint, --primary key(indeks, id_predmeta), --foreign key fk_ispit (indeks, id_predmeta, godina_roka, oznaka_roka) references ispit, --constraint vrednost_ocene check (ocena between 6 and 10) --); --insert into polozeni_predmeti --select * --from ispit --where ocena>5; --2 --alter table polozeni_predmeti --drop datum_ispita; --reorg table polozeni_predmeti; --3 --alter table polozeni_predmeti -- add constraint bodovi_ispit check (bodovi between 51 and 100) -- alter column ocena set default 6; --4 --drop table polozeni_predmeti; --5 --create table student_ispiti ( -- indeks integer not null primary key, -- polozeni_ispiti smallint, -- prosek double, -- constraint si_d foreign key (indeks) references dosije --); --6 --alter table student_ispiti -- add broj_ispita smallint -- add constraint ispiti check(broj_ispita>=polozeni_ispiti); --7 --insert into student_ispiti --select indeks, sum(case when ocena>5 then 1 else 0 end) broj_polozenih, -- avg(case when ocena>5 then ocena*1.0 else null end), -- count(*) broj_polaganih --from ispit --group by indeks; --8 --select ime, count(*) n --from dosije --where pol='m' --group by ime --order by n desc; --9 --select i.indeks, trim(d.ime) || ' ' || trim(d.prezime), sum(p.bodovi) polozeno --from dosije d -- join ispit i -- on d.indeks=i.indeks -- join predmet p -- on i.id_predmeta=p.id_predmeta --where i.status_prijave='o' and i.ocena>5 --group by i.indeks, ime, prezime --order by 3;