2015-01-19 3 views
2

Как найти строки, которые имеют повторяющиеся значения в одном столбце, но разные значения в другом столбце. У меня есть база данных городов с широтой и долготой. Я хотел бы найти все строки, которые имеют дубликат в столбце имени города, но имеют разную широту и долготу. Например, paris, france и paris, texas имеют одно и то же название города «paris», но отличаются широтой и долготой, поэтому оба они будут включены в результаты запроса. Но он не должен возвращать строки, которые имеют повторяющиеся названия городов и дублируют значения широты/долготы.SQL - поиск дубликатов одного столбца, но разных в другой колонке

ответ

4

Если вы просто хотите, названия городов:

select city 
from table t 
group by city 
having min(latitude) <> max(latitude) or 
     min(longitude) <> max(longitude); 

Если вы хотите детали, то вы можете join это обратно к главному столу или использовать group_concat(), чтобы собрать список стран (например).

0
select city,latitude,longitude,count(*) cnt 
from table 
group by city,latitude,longitude 
having count(*)>1 

города, которые входят в набор результатов, являются дубликатами.

Смежные вопросы