od
od copied to clipboard
[volby] priklad dotazu mezi volbama
Výsledky voleb do PSP podle senátních obvodů. Ještě je tam potřeba join na přehled hlasů v daný obci, abychom měli procenta.
with obce as (
SELECT
distinct obec
FROM
volby.senat_okrsky
WHERE
obvod = 81 -- uherske hradiste
AND datum = '2014-10-10' -- posledni volby tam
), per_obec as (
select datum, okres, obec, nazevcelk, sum(poc_hlasu) as hlasu from volby.psp_okrsky_hlasy
-- tenhle subselect je kvuli chybe ve stranickych datech, je k tomu issue 99
inner join (select distinct on(datum, kstrana, vstrana) * from volby.psp_strany) x using(datum, kstrana)
where obec in (select * from obce) and datum = '2017-10-20' -- psp volby 2017
group by 1, 2, 3, 4
), per_obec_celkem as (
select datum, okres, obec, sum(pl_hl_celk) as celkem from volby.psp_okrsky_prehled group by 1,2,3
)
select *, (100*hlasu::numeric/celkem)::numeric(8, 2) as procent from per_obec
inner join per_obec_celkem using(datum, okres, obec)