SQL - 查找一列的重复项但在另一列中不同

SQL - Finding Duplicates of One Column But Different in Another Column

如何查找在一列中具有重复值但在另一列中具有不同值的行。我有一个包含经纬度的城市数据库。我想找到在城市名称列中具有重复但具有不同纬度和经度的所有行。例如,paris,france 和 paris,texas 具有相同的城市名称 "paris" 但纬度和经度不同,因此它们都将包含在查询结果中。但它不应该 return 具有重复城市名称和重复 latitude/longitude 值的行。

如果您只想要城市名称:

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

如果你想要详细信息,那么你可以 join 这回到主 table 或使用 group_concat() 到 assemble 国家列表(例如) .

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

以上结果集中的城市重复。