= Напредни извештаи од базата (SQL и складирани процедури) = == Листа на предмети каде за секој предмет е прикажан најпопуларниот наставник (наставник со најголем број на ученици на кои им предава) == {{{#!sql select p.ime as predmet, n.ime as ime_nastavnik, n.prezime as prezime_nastavnik, q3.ucenici as broj_ucenici from ( select * from ( select broj_ucenici.predmet as predmet, max(broj_ucenici.ucenici) as ucenici from ( select p.id_predmet as predmet, n.id_nastavnik ,count(u.id_ucenik) as ucenici from predmeti p join predava_predmet pp on p.id_predmet = pp.id_predmet join nastavnici n on pp.id_nastavnik = n.id_nastavnik join predava_na pn on n.id_nastavnik = pn.id_nastavnik join ucenici u on u.id_ucenik =pn.id_ucenik group by p.id_predmet, n.id_nastavnik ) as broj_ucenici group by broj_ucenici.predmet ) as q1 join ( select p.id_predmet as predmet2 ,n.id_nastavnik ,count(u.id_ucenik) as ucenici2 from predmeti p join predava_predmet pp on p.id_predmet = pp.id_predmet join nastavnici n on pp.id_nastavnik = n.id_nastavnik join predava_na pn on n.id_nastavnik = pn.id_nastavnik join ucenici u on u.id_ucenik =pn.id_ucenik group by p.id_predmet , n.id_nastavnik ) as q2 on q2.predmet2 = q1.predmet and q2.ucenici2 = q1.ucenici ) as q3 join nastavnici n on n.id_nastavnik = q3.id_nastavnik join predmeti p on p.id_predmet = q3.predmet }}} == Предмет со најмногу заинтересирани ученици во последните 100 дена == {{{#!sql select p.ime as predmet, count(zz.id_ucenik) as broj_na_zainteresirani_ucenici from predmeti p join zainteresiran_za zz on zz.id_predmet = p.id_predmet join ucenici u on u.id_ucenik = zz.id_ucenik where zz.datum between current_date - interval '100 days' and current_date group by p.ime order by count(zz.id_ucenik) desc limit 1; }}} == Број на наставници за секој предмет == {{{#!sql select p.ime as predmet, count(pp.id_nastavnik) broj_na_nastavnici from predmeti p join predava_predmet pp on pp.id_predmet = p.id_predmet group by p.id_predmet order by p.ime; }}} == За даден предмет, листа на сите наставници на предметот со број на ученици за секој наставник == {{{#!sql select p.ime as predmet, n.ime as nastavnik, count(u.id_ucenik) as br_ucenici from predmeti p join predava_predmet pp on p.id_predmet = pp.id_predmet join nastavnici n on pp.id_nastavnik = n.id_nastavnik join predava_na pn on n.id_nastavnik = pn.id_nastavnik join ucenici u on u.id_ucenik =pn.id_ucenik where p.id_predmet = 1 group by p.ime, n.ime order by br_ucenici desc }}} == Листа на наставници со број на одржани часови == {{{#!sql select n.id_nastavnik , n.ime, count(c.id_cas) as max_br_casovi from nastavnici n left join casovi c on c.id_nastavnik = n.id_nastavnik group by n.id_nastavnik , n.ime order by max_br_casovi desc }}}