【发布时间】:2015-01-19 15:37:32
【问题描述】:
如何查找在某一列中具有重复值但在另一列中具有不同值的行。我有一个经纬度城市的数据库。我想查找在城市名称列中有重复但纬度和经度不同的所有行。例如,paris,france 和 paris,texas 具有相同的城市名称“paris”,但经纬度不同,因此它们都将包含在查询结果中。但它不应返回具有重复城市名称和重复纬度/经度值的行。
【问题讨论】:
标签: mysql sql duplicates
如何查找在某一列中具有重复值但在另一列中具有不同值的行。我有一个经纬度城市的数据库。我想查找在城市名称列中有重复但纬度和经度不同的所有行。例如,paris,france 和 paris,texas 具有相同的城市名称“paris”,但经纬度不同,因此它们都将包含在查询结果中。但它不应返回具有重复城市名称和重复纬度/经度值的行。
【问题讨论】:
标签: mysql sql duplicates
如果您只想要城市名称:
select city
from table t
group by city
having min(latitude) <> max(latitude) or
min(longitude) <> max(longitude);
如果您想了解详细信息,那么您可以join 这个回到主表或使用group_concat() 组合一个国家列表(例如)。
【讨论】:
select city,latitude,longitude,count(*) cnt
from table
group by city,latitude,longitude
having count(*)>1
上述结果集中的城市是重复的。
【讨论】:
latitude 和 longitude 值的重复 city。