如何在一列中找到具有重复值但在另一列中具有不同值的行。我有一个经度和纬度的城市数据库。我想查找城市名称列中具有重复但具有不同纬度和经度的所有行。例如,巴黎,法国和巴黎,德州有相同的城市名称" paris"但是纬度和经度不同,所以它们都会包含在查询结果中。但它不应返回具有重复城市名称和重复纬度/经度值的行。
答案 0 :(得分:4)
如果您只想要城市名称:
select city
from table t
group by city
having min(latitude) <> max(latitude) or
min(longitude) <> max(longitude);
如果您需要详细信息,则可以join
将其返回主表或使用group_concat()
汇总国家/地区列表(例如)。
答案 1 :(得分:0)
select city,latitude,longitude,count(*) cnt
from table
group by city,latitude,longitude
having count(*)>1
进入上述结果集的城市是重复的。