od
od copied to clipboard
view/sql cvičení/adresář: detekovat změny příjmení
Občas je potřeba detekovat, že se někomu změnilo jména, zpravidla po sňatku (ale i jinak, např. Le Veneur).
Úplně nejzákladnější dotaz funguje. Jde tu o logiku, že v rámci daného subjektu je málo pravděpodobná kolize data narození a křestního jména. Pokud se ale liší příjmení, může jít o změnu v čase (často jde ale o různé propisy příjmení, zejm. u těch zahraničních).
SELECT
ico, lower(jmeno) jmeno, string_agg(distinct lower(prijmeni), ', '), max(datum_zapis) posledni_zapis
FROM
justice.angazovane_osoby
where jmeno is not null and prijmeni is not null and datum_narozeni is not null
group by ico, lower(jmeno), datum_narozeni
having count(distinct lower(prijmeni)) > 1
order by 4 desc
LIMIT 100
Ale asi by to místo string_agg chtělo udělat array agregaci, pak unnestovat, znova agregovat (abychom člověka se změnou jména u pěti subjektů měli na jednom řádku, ne pěti a víc).