Changes between Version 2 and Version 3 of AdvancedReports


Ignore:
Timestamp:
01/29/24 16:22:24 (12 months ago)
Author:
211012
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReports

    v2 v3  
    11= Напредни извештаи од базата (SQL)
    2 
    3 === Листање на секоја реализација заедно со резултат на сите кандидати за таа реализацијата
    4 {{{#!sql
    5 select ri.ri_id, ri.ri_datum, ri.ri_ime, k.kan_id, kan.g_id, g.g_ime, count(distinct gk.ug_id)
    6 from realizacii_na_izbori ri
    7 join realizacii_so_kandidaturi rk on ri.ri_id = rk.ri_id
    8 left join kandidaturi k on rk.ri_id = k.ri_id
    9 left join glasovi_za_kandidat gk on k.kan_id = gk.kan_id
    10 left join kandidati kan on kan.g_id = k.g_id
    11 left join gragjani g on k.g_id = g.g_id
    12 group by ri.ri_id, ri.ri_datum, ri.ri_ime, k.kan_id, kan.g_id, g.g_ime
    13 }}}
    14 
    152
    163=== Целосни резултати по избирачко место за реализации со кандидатура
     
    2411        column_definitions text;
    2512    BEGIN
    26         EXECUTE 'SELECT DISTINCT g.g_ime FROM eglas2.kandidaturi kan join eglas2.kandidati k on kan.g_id = k.g_id join eglas2.gragjani g on g.g_id = k.g_id' INTO dynamic_sql;
    2713
    2814        column_definitions := (SELECT string_agg(quote_ident(att) || ' bigint', ', ')
     
    6349        column_definitions text;
    6450    BEGIN
    65         EXECUTE 'SELECT DISTINCT p.p_ime FROM eglas2.partii p' INTO dynamic_sql;
    6651
    6752        column_definitions := (SELECT string_agg(quote_ident(att) || ' bigint', ', ')
     
    8974}}}
    9075
    91 == Податоци за излезноста на граѓани по избирачко место по даден интервал X од час Y до час Z, за дадена реализација Q
     76=== Податоци за излезноста на граѓани по избирачко место по даден интервал X од час Y до час Z, за дадена реализација Q
    9277
    9378{{{#!sql
     
    10489       count(distinct gl.ug_id) vkupno_izlezeni,
    10590       coalesce(count(distinct gl.ug_id) * 100.0 / (select broj_glasaci from broj_glasaci_po_mesto where im_id = im.im_id), 0) procentualna_izleznost
    106 from generate_series(Y, Z, X) interval_cas
     91from generate_series(Y, Z, Q) interval_cas
    10792cross join izbiracki_mesta im
    108 left join glasanja gl on im.im_id = gl.im_id and gl.ri_id = Q and extract(hour from ug_vreme) = interval_cas
     93left join glasanja gl on im.im_id = gl.im_id and gl.ri_id = X and make_time(extract(hour from ug_vreme)::int, extract(min from ug_vreme)::int, 0)  between make_time(interval_cas::int, 0, 0) and make_time((interval_cas::int + (Q - 1)) % 24, 59, 0)
    10994left join glasovi_za_kandidat gzk on gl.ug_id = gzk.ug_id
    11095group by im.im_id, im.im_mesto, interval_cas
    11196order by im.im_id, im.im_mesto asc
    112 }}}
    113 
    114 
    115 === Детални податоци за излезноста на граѓани по избирачко место за реализација на избори со кандидати / кандидатска листа
    116 {{{#!sql
    117 select im.im_id, im.im_mesto,
    118        count(distinct gl.ug_id) vkupno_izlezeni,
    119        count(distinct gzk.ug_id) vazecki_glasovi,
    120        count(distinct gl.ug_id) - count(distinct gzk.ug_id) nevazceki_glasovi
    121 from izbiracki_mesta im
    122 left join glasanja gl on im.im_id = gl.im_id and gl.ri_id = 1
    123 left join glasovi_za_kandidat gzk on gl.ug_id = gzk.ug_id
    124 group by im.im_id, im.im_mesto
    125 }}}
    126 // //
    127 {{{#!sql
    128 select im.im_id, im.im_mesto,
    129        count(distinct gl.ug_id) vkupno_izlezeni,
    130        count(distinct gzk.ug_id) vazecki_glasovi,
    131        count(distinct gl.ug_id) - count(distinct gzk.ug_id) nevazceki_glasovi
    132 from izbiracki_mesta im
    133 left join glasanja gl on im.im_id = gl.im_id and gl.ri_id = 1
    134 left join glasovi_za_lista gzk on gl.ug_id = gzk.ug_id
    135 group by im.im_id, im.im_mesto
    13697}}}
    13798
     
    161122order by broj_progovori desc, im.im_mesto asc;
    162123}}}
     124
     125=== Листање на секоја реализација заедно со резултат на сите кандидати за таа реализацијата
     126{{{#!sql
     127select ri.ri_id, ri.ri_datum, ri.ri_ime, k.kan_id, kan.g_id, g.g_ime, count(distinct gk.ug_id)
     128from realizacii_na_izbori ri
     129join realizacii_so_kandidaturi rk on ri.ri_id = rk.ri_id
     130left join kandidaturi k on rk.ri_id = k.ri_id
     131left join glasovi_za_kandidat gk on k.kan_id = gk.kan_id
     132left join kandidati kan on kan.g_id = k.g_id
     133left join gragjani g on k.g_id = g.g_id
     134group by ri.ri_id, ri.ri_datum, ri.ri_ime, k.kan_id, kan.g_id, g.g_ime
     135}}}
     136
     137=== Листање на излезноста во сите општини со информација дали има цензус (за избори со општински кандидатури)
     138{{{#!sql
     139select o.o_ime,
     140       count(distinct g.g_id) vkupno,
     141       count(distinct gl.ug_id) glasale,
     142       case
     143           when count(distinct g.g_id) = 0 then true
     144           else count(distinct gl.ug_id) * 100.0 / count(distinct g.g_id) >= 35
     145       end ima_cenzus
     146from opstini o
     147left join adresi a on o.o_id = a.o_id
     148left join gragjani g on a.a_id = g.a_id
     149left join glasanja gl on gl.g_id = g.g_id and gl.ri_id = 1
     150group by o.o_ime
     151}}}
     152
     153=== Детални податоци за излезноста на граѓани по избирачко место за реализација на избори со кандидати / кандидатска листа
     154{{{#!sql
     155select im.im_id, im.im_mesto,
     156       count(distinct gl.ug_id) vkupno_izlezeni,
     157       count(distinct gzk.ug_id) vazecki_glasovi,
     158       count(distinct gl.ug_id) - count(distinct gzk.ug_id) nevazceki_glasovi
     159from izbiracki_mesta im
     160left join glasanja gl on im.im_id = gl.im_id and gl.ri_id = 1
     161left join glasovi_za_kandidat gzk on gl.ug_id = gzk.ug_id
     162group by im.im_id, im.im_mesto
     163}}}
     164// //
     165{{{#!sql
     166select im.im_id, im.im_mesto,
     167       count(distinct gl.ug_id) vkupno_izlezeni,
     168       count(distinct gzk.ug_id) vazecki_glasovi,
     169       count(distinct gl.ug_id) - count(distinct gzk.ug_id) nevazceki_glasovi
     170from izbiracki_mesta im
     171left join glasanja gl on im.im_id = gl.im_id and gl.ri_id = 1
     172left join glasovi_za_lista gzk on gl.ug_id = gzk.ug_id
     173group by im.im_id, im.im_mesto
     174}}}