Skip to content

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

@kokes

Description

@kokes

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions