od icon indicating copy to clipboard operation
od copied to clipboard

[volby] priklad vysledku jedne strany v ramci kraje

Open kokes opened this issue 5 years ago • 2 comments

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

kokes avatar Jul 20 '20 19:07 kokes

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'

kokes avatar Jul 20 '20 20:07 kokes

Místo příkladu by to chtělo view.

kokes avatar Jul 20 '20 21:07 kokes