PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Elimine cidades duplicadas do banco de dados


Isso exclui a segunda cidade próxima a uma cidade com o mesmo nome no mesmo país:
delete from climate.maxmind_city mc where id in (
select
  max(c1.id)
from
  climate.maxmind_city c1,
  climate.maxmind_city c2
where
  c1.id <> c2.id and
  c1.country = c2.country and
  c1.name = c2.name and
  earth_distance(
    ll_to_earth( c1.latitude_decimal, c1.longitude_decimal ),
    ll_to_earth( c2.latitude_decimal, c2.longitude_decimal ) ) <= 35
group by
  c1.country, c1.name
order by
  c1.country, c1.name
)