= Напредни извештаи од базата (SQL и складирани процедури) == Прикажување на најбараната категорија од страна на членовите во последните три недели {{{#!sql select kat.ime_kategorija,count(kat.ime_kategorija) as pozajmeni_knigi_od_kategorija from pozajmica as p join knigi as k on p.id_na_kniga = k.id_na_kniga join e_od as e on k.id_na_kniga = e.id_knigi join kategorija as kat on e.id_na_kategorija = kat.id_na_kategorija where p.datum_na_zemanje between now() - interval'3 weeks' and now() group by 1 order by pozajmeni_knigi_od_kategorija desc fetch first row only; }}} == Прикажување на членот што има прочитано највеќе книги во последниот месец {{{#!sql select ch.ime,ch.prezime,(count(ch.id_chovek)) as pozajmuvanja from pozajmica as p join chlen as chl on p.id_chovek_prave = chl.id_chovek join chovek as ch on chl.id_chovek = ch.id_chovek join knigi as k on p.id_na_kniga = k.id_na_kniga where p.datum_na_zemanje between now() - interval'1 month' and now() group by 1,2 order by pozajmuvanja desc fetch first row only; }}} == Прикажување колку позајмици има направено одредена возрасна група корисници во одреден временски интервал {{{#!sql select count(p.id_na_pozajmica) as pozajmici from pozajmica as p join chlen as chl on p.id_chovek_prave = chl.id_chovek join chovek as ch on chl.id_chovek = ch.id_chovek join knigi as k on p.id_na_kniga = k.id_na_kniga where age(((case when substr(embg,5,1) = '9' then '1' || substr(embg,5,3) else '2' || substr(embg,5,3) end) || '-' || substr(embg,3,2) || '-' || substr(embg,1,2))::date) between interval '20 years' and interval '22 years' and p.datum_na_zemanje between now() - interval'3 weeks' and now() }}} == Прикажување на најдобро оценетата книга {{{#!sql select k.naslov, avg(ocena) as prosecna_ocena from ocena as o join knigi as k on o.ocena_id_kniga = k.id_na_kniga join pozajmica as p on k.id_na_kniga = p.id_na_kniga group by 1 order by prosecna_ocena desc fetch first row only; }}} == Прикажување на најчитаната книга на еден автор за одреден временски период {{{#!sql select * from pozajmica; select k.naslov, a.ime, count(p.id_na_pozajmica) as pozajmuvanja from pozajmica as p join knigi as k on p.id_na_kniga=k.id_na_kniga join izdava as i on k.id_na_kniga = i.id_knigi join avtor as a on i.id_avtor = a.id_na_avtor where a.ime like '%Goce%' and p.datum_na_zemanje between now() - interval'6 weeks' and now() group by 1,2 order by pozajmuvanja desc fetch first row only; }}} == Прикажување колку често корисниците се најавувале во даден временски интервал {{{#!sql select ch.ime,ch.prezime,(count(a.log_id)) as najavuvanja from authentication as a join chovek as ch on a.id_chovek = ch.id_chovek where a.timestamp_log between now() - interval '2 weeks' and now() group by 1,2 order by najavuvanja desc }}}