Ir para o conteúdo

CNEFE: mudanças entre as edições

sem sumário de edição
Sem resumo de edição
Sem resumo de edição
Linha 122: Linha 122:
$f$ LANGUAGE SQL;
$f$ LANGUAGE SQL;


create table ibge_cnefe2022_uniq1 AS  -- unicidade básica, ainda com repetição de pontos
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.
Falta eliminar mesmo ponto e mesmo endereço/CEP.
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
2 402

edições