Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Párování komunálek na rejstřík a dál #275

Open
kokes opened this issue Dec 18, 2023 · 3 comments
Open

Párování komunálek na rejstřík a dál #275

kokes opened this issue Dec 18, 2023 · 3 comments

Comments

@kokes
Copy link
Owner

kokes commented Dec 18, 2023

Můžeme využít toho, že při kandidatuře do komunálek je povinnost bydliště v místě kandidatury (ověřit přesnou podmínku), takže bychom měli být schopni nějak propojit kandidátky (ideálně ty výherní/lidi nahoře) s rejstříkem, a tím pádem s VZ/RS/ReD/atd.

WITH komunal AS (
	SELECT
		*
	FROM
		volby.komunalni_kandidati
		INNER JOIN volby.komunalni_obce USING (datum,
			okres,
			kodzastup)
	WHERE
		datum = '2022-09-23'
		AND nazevzast = 'Praha 5'
		AND mandat
		-- TODO: priblizny vek sedi?
	LIMIT 1000
)
SELECT
	nazev.ico, subjekty.pravni_forma, subjekty.esa2010, nazev.nazev, komunal.*, ang.*
FROM
	justice.angazovane_osoby ang
	inner join justice.nazev using(ico)
	inner join komunal on lower(komunal.jmeno) = lower(ang.jmeno) and lower(komunal.prijmeni) = lower(ang.prijmeni) and komunal.nazevobce = ang.adresa_obec
	INNER JOIN res.subjekty USING(ico)
where nazev.datum_vymaz is null
and pravni_forma not in ('Společenství vlastníků jednotek', 'Příspěvková organizace')
and esa2010 not in ('Veřejné podniky nefinanční')
LIMIT 1000;


CREATE INDEX angazovane_osoby_jmeno_prijmeni_adresa_obec_idx
ON justice.angazovane_osoby
(lower(prijmeni), lower(jmeno), adresa_obec);
@kokes
Copy link
Owner Author

kokes commented Dec 18, 2023

Hodně moc pomohl index na angažovaný osoby (duh)

CREATE INDEX angazovane_osoby_jmeno_prijmeni_adresa_obec_idx
ON justice.angazovane_osoby
(lower(prijmeni), lower(jmeno), adresa_obec);

@kokes
Copy link
Owner Author

kokes commented Dec 18, 2023

šlo by to napárovat na mv ze smluv

CREATE materialized VIEW smlouvy.mv_ucastnici AS
SELECT
	ico,
	-- redundantni
	max(
		uc.nazev) nazev,
	sum(
		coalesce(hodnota_s_dph, hodnota_bez_dph)) AS smlouvy_hodnota,
	count(
		*) pocet_smluv
FROM
	smlouvy.ucastnici uc
	INNER JOIN smlouvy.smlouvy sm ON sm.id_verze = uc.smlouva
WHERE
	platny_zaznam
GROUP BY
	ico

@kokes
Copy link
Owner Author

kokes commented Dec 18, 2023

Po celý republice to pak hodí desítky tisíc záznamů. Celkem bordel, ale jistě to půjde značně zlepšovat. Jde o asi 14k subjektů

WITH komunal AS (
	SELECT
		*
	FROM
		volby.komunalni_kandidati
		INNER JOIN volby.komunalni_obce USING (datum,
			okres,
			kodzastup)
	WHERE
		datum = '2022-09-23'
-- 		AND nazevzast like 'Praha%'
		AND mandat
		-- TODO: priblizny vek sedi?
), prehled as (
	SELECT
		nazev.ico, sub.pravni_forma, sub.esa2010, nazev.nazev, uc.smlouvy_hodnota, uc.pocet_smluv, komunal.*, ang.*
	FROM
		justice.angazovane_osoby ang
		inner join justice.nazev on nazev.ico = ang.ico
		inner join komunal on lower(komunal.jmeno) = lower(ang.jmeno) and lower(komunal.prijmeni) = lower(ang.prijmeni) and komunal.nazevobce = ang.adresa_obec
		INNER JOIN res.subjekty sub on sub.ico = nazev.ico
		INNER JOIN smlouvy.mv_ucastnici uc on uc.ico = nazev.ico
	where nazev.datum_vymaz is null
	and pravni_forma not in ('Společenství vlastníků jednotek', 'Příspěvková organizace')
	and esa2010 not in ('Veřejné podniky nefinanční', 'Ústřední vládní instituce (kromě fondů sociálního zabezpečení)', 'Místní vládní instituce (kromě fondů sociálního zabezpečení)')
	ORDER by smlouvy_hodnota desc nulls last
)

select * from prehled limit 1000

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant