我试图在一个具有相同纬度/经度的位置表中查找行,当舍入到2个小数位以及相同的名称时。这是我的表(例如):
+---------------------------------------+
| ID | lat | lng | name |
+---------------------------------------+
| 11 | -11.119 | 13.891 | Smith's Place |
| 81 | -11.121 | 13.893 | Smith's Place |
+---------------------------------------+
什么SELECT语句会找到实例(如上所述),当舍入到2个小数位时,lat / lng匹配...并且名称相同?
我正在寻找类似于此查询的内容,显然不起作用(但是要求我追求的是):
SELECT * FROM pb_locations GROUP BY ROUND(lat,2),ROUND(lng,2) WHERE name = name HAVING count(ID) > 1
答案 0 :(得分:1)
WHERE name = name
始终是真的,因为它只是在同一行内进行比较,而不是跨越不同的行。
您需要将所有3列放在GROUP BY
子句中。
SELECT *
FROM pb_locations
GROUP BY ROUND(lat, 2), ROUND(lng, 2), name
HAVING COUNT(*) > 1