wiki:AdvancedReports

Version 13 (modified by 193076, 3 years ago) ( diff )

--

Напредни извештаи од базата (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 

Прикажување на членот што има прочитано највеќе книги во последниот месец

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

Прикажување колку позајмици има направено одредена возрасна група корисници во одреден временски интервал

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()

Прикажување на најдобро оценетата книга

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

Прикажување на најчитаната книга на еден автор за одреден временски период

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

Прикажување колку често корисниците се најавувале во даден временски интервал

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
Note: See TracWiki for help on using the wiki.