od
od copied to clipboard
[volby] priklad vysledku jedne strany v ramci kraje
SELECT
datum, okres, obec, max(nazevobce) as nazevobce,
sum(poc_hlasu) as poc_hlasu,
sum(vol_seznam) as vol_seznam,
sum(vyd_obalky) as vyd_obalky,
sum(odevz_obal) as odevz_obal,
sum(pl_hl_celk) as pl_hl_celk,
(100*sum(poc_hlasu)::numeric / sum(pl_hl_celk))::numeric(5,2) as pct_hlasu
FROM
volby.kraje_okrsky_hlasy
inner join volby.kraje_okrsky_prehled using(datum, okres, obec, okrsek)
inner join volby.kraje_strany_cr using(datum, kstrana)
inner join volby.kraje_obce using(datum, okres, obec)
where nazevcelk = 'ANO 2011'
and date_trunc('year', datum) = '2016-01-01'
and kraj = 2100
-- and obec = 529303
group by datum, okres, obec
limit 10000
A kdybychom to chtěli i s pořadím
with vsechny_strany as (
SELECT
datum, okres, obec, max(nazevobce) as nazevobce,
kstrana, max(nazevcelk) as nazevcelk,
sum(poc_hlasu) as poc_hlasu,
sum(vol_seznam) as vol_seznam,
sum(vyd_obalky) as vyd_obalky,
sum(odevz_obal) as odevz_obal,
sum(pl_hl_celk) as pl_hl_celk,
(100*sum(poc_hlasu)::numeric / sum(pl_hl_celk))::numeric(5,2) as pct_hlasu
FROM
volby.kraje_okrsky_hlasy
inner join volby.kraje_okrsky_prehled using(datum, okres, obec, okrsek)
inner join volby.kraje_strany_cr using(datum, kstrana)
inner join volby.kraje_obce using(datum, okres, obec)
where 1=1
and date_trunc('year', datum) = '2016-01-01'
and kraj = 2100
-- and obec = 529303
group by datum, okres, obec, kstrana
limit 100000
), vc_poradi as (
select
*, rank() over(partition by datum, okres, obec order by pct_hlasu desc) as poradi
from vsechny_strany
)
select * from vc_poradi
where nazevcelk = 'ANO 2011'
Místo příkladu by to chtělo view.