wiki:AdvancedReports

Version 10 (modified by 216049, 11 months ago) ( diff )

--

Напредни извештаи од базата (SQL)

Пример извештаи

  • Број на казнети патници според линија во изминатата година
  • Мерење побарувачка на секоја линија во првиот квартал од оваа година
  • Проток на патници според постојка
  • Најпрометен период во денот (интервали од 1 час) според линија - од податоци од ланската година
  • Период од денот во кој најмногу се купува билети (часовни и дневни)
  • Период од денот во кој најмногу се пишуваат казни

1. Број на казнети патници според линија во изминатата година

select li_ime, count(li_ime)
from linija l
left join instancanalinija as i on l.li_id = i.li_id
left join kontroli as ko on i.inl_id = ko.inl_id
left join kazna as ka on ko.kontrola_id = ka.kontrola_id
where extract(year from ka.kz_datum) = extract(year from (now() - interval'1 year'))
group by li_ime
order by count(li_ime) desc

2. Најпрометен период во денот (интервали од 1 час) според линија - од податоци од ланската година


select li_ime_given as li_ime, interval_1h , broj_pati
from(
        select li_ime as li_ime_given, interval_1h , count(li_ime||'-'||interval_1h) broj_pati
        from(
                select *, 
                (to_char(extract (hour from vozenje_start), '00') || ':00 -' || to_char(extract (hour from (vozenje_start + '1 hours'::interval))::int, '00') || ':00') as interval_1h
                from project.linija li 
                left join project.instancanalinija inl on li.li_id = inl.li_id 
                left join project.vozenje v on inl.inl_id = v.inl_id 
                where v.vozenje_start between (make_date(extract(year from (now() - '1 years'::interval))::int, 1, 1)) and (make_date(extract(year from (now() - '1 years'::interval))::int, 12, 31))
        )
        group by li_ime, interval_1h 
        order by li_ime, interval_1h
)
where broj_pati = (
        select max(broj_pati)
        from(
                select li_ime, interval_1h , count(li_ime||'-'||interval_1h) broj_pati
                from(
                        select *, 
                        (to_char(extract (hour from vozenje_start), '00') || ':00 -' || to_char(extract (hour from (vozenje_start + '1 hours'::interval))::int, '00') || ':00') as interval_1h
                        from project.linija li 
                        left join project.instancanalinija inl on li.li_id = inl.li_id 
                        left join project.vozenje v on inl.inl_id = v.inl_id 
                        where li_ime = li_ime_given
                )
                group by li_ime, interval_1h 
                order by li_ime, interval_1h 
        )
        group by li_ime
)

3. Мерење побарувачка на секоја линија во првиот квартал од оваа година

4. Проток на патници според постојка

5. Период од денот (интервали од 1 час) во кој најмногу се купува билети (часовни и дневни)

6. Период од денот (интервали од 1 час) во кој најмногу се пишуваат казни

Note: See TracWiki for help on using the wiki.