od icon indicating copy to clipboard operation
od copied to clipboard

(nejen) SQL cvičení: rodinné vztahy poslanců v rámci obchodního rejstříku

Open kokes opened this issue 3 years ago • 0 comments

Tohle je jen hrubý nástřel, je třeba zohlednit tři možnosti:

  1. Stejná adresa ve stejné firmě, různá jména (nenula false positives)
  2. To samé jako 1., ale s detekcí podobného příjmení (dost nedokonalé a hodně false negatives)
  3. Stejná adresa, podobné příjmení, různé firmy

Tady je první nástřel, udělaný na první dobrou - největší neduh je asi to, že nevyřazuju SVJ, který tam budou asi hlavní kámen úrazu.

with poslanci as (
	select * from psp.poslanci_osoby os
	inner join psp.poslanci_zarazeni zar using(id_osoba)
	inner join psp.poslanci_organy org on org.id_organ = zar.id_of
	where zar.cl_funkce = 0
	and zkratka = 'PSP9'
), relica as (
select ico
from justice.angazovane_osoby ang
inner join poslanci pos on lower(pos.jmeno) = lower(ang.jmeno) and lower(pos.prijmeni) = lower(ang.prijmeni) and pos.narozeni = ang.datum_narozeni
), duplicity as (
select ico, adresa_stat, adresa_ulice, adresa_okres, adresa_cislo_po, adresa_psc from justice.angazovane_osoby
where ico in (select * from relica)
group by ico, adresa_stat, adresa_ulice, adresa_okres, adresa_cislo_po, adresa_psc
having count(*) > 1 and count(distinct (lower(jmeno), lower(prijmeni))) > 1
)

select ico, jmeno, prijmeni, * from justice.angazovane_osoby
inner join duplicity using(ico, adresa_stat, adresa_ulice, adresa_okres, adresa_cislo_po, adresa_psc)
order by ico, jmeno, prijmeni

kokes avatar Nov 23 '22 14:11 kokes