2 402
edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 122: | Linha 122: | ||
$f$ LANGUAGE SQL; | $f$ LANGUAGE SQL; | ||
create table | create table tmp_ibge_cnefe2022_uniq1 AS -- unicidade básica, ainda com repetição de pontos | ||
SELECT DISTINCT ghs, via_name, num_endereco | SELECT DISTINCT ghs, via_name, num_endereco | ||
FROM vw02_ibge_cnefe2022 | FROM vw02_ibge_cnefe2022 | ||
Linha 147: | Linha 147: | ||
Só na redução de pontos para 50% já é bem drástica, provavelmente inclui casos que diferenciam apenas no complemento. | Só na redução de pontos para 50% já é bem drástica, provavelmente inclui casos que diferenciam apenas no complemento. | ||
Desses, com duplicidade posicional apenas ~7,6% (24642 de 325993), sendo também razoável o seu descarte de tmp_ibge_cnefe2022_uniq1. | |||
drop table if exists ibge_cnefe2022_uniq2; | |||
create table ibge_cnefe2022_uniq2 AS -- remove endereços duplicados em locais diferentes | |||
select v.cod_setor, v.num_quadra, v.num_face, v.cep, v.via_name, v.num_endereco, | |||
array_agg(v.ghs) ghss, array_agg(v.geom) geoms | |||
from( | |||
SELECT DISTINCT ON (ghs) ghs, via_name, num_endereco, count(*) OVER (PARTITION BY ghs) AS ghs_count | |||
FROM tmp_ibge_cnefe2022_uniq1 | |||
) g -- 325993 | |||
INNER JOIN vw02_ibge_cnefe2022 v ON 1=g.ghs_count AND g.ghs=v.ghs | |||
group by 1,2,3,4,5,6 | |||
order by 1,2,3,4,5,6 | |||
; -- 257387 | |||
select count(*) from (select cep, via_name, num_endereco, hcodes_sameparent(ghss) as is_same from ibge_cnefe2022_uniq2 where cardinality(ghss)>1 ) where is_same;-- 49597 | |||
select count(*) from (select cep, via_name, num_endereco, hcodes_sameparent(ghss) as is_same from ibge_cnefe2022_uniq2 where cardinality(ghss)>1 ) where not(is_same); -- 22523 | |||
-- conclusão: vale a pena manter o same, removendo o último dígito, fornecendo um booleano para usuário decidir se valido ou não. | |||
-- os casos de não same podem ser resgatados por geometria | |||
select count(*) from (select geoms_maxdist(geoms,true) dist from (select cep, via_name, num_endereco, hcodes_sameparent(ghss) as is_same, geoms from ibge_cnefe2022_uniq2 where cardinality(ghss)>1 ) where not(is_same)) where dist<=20; | |||
select count(*), count(distinct via_name||num_endereco) from (select distinct cod_setor, via_name, num_endereco, cep | select count(*), count(distinct via_name||num_endereco) from (select distinct cod_setor, via_name, num_endereco, cep | ||
from vw02_ibge_cnefe2022 | from vw02_ibge_cnefe2022 | ||
) t; -- 288685 | 277160 | ) t; -- 288685 | 277160 |
edições