【发布时间】:2020-12-11 16:01:04
【问题描述】:
我有一个用户位置的 mysql 表。我有如下记录
id user_id latitude longitude
1 1 28.62584611111111 77.10560666666667
2 1 28.62584611111111 77.10560666666667
3 1 28.62584611111111 77.10560666666667
4 1 28.62584611111111 77.10560666666667
5 1 28.627457222222223 77.11092111111111
6 1 28.627457222222223 77.11092111111111
7 1 28.62584611111111 77.10560666666667
8 1 28.62584611111111 77.10560666666667
现在看到 id 1,2,3,4,7,8 具有相同的经纬度,而 id 5,6 具有不同的经纬度
如果我分组,我只会得到两个结果。但我的预期输出如下:-
id user_id latitude longitude
4 1 28.62584611111111 77.10560666666667
6 1 28.627457222222223 77.11092111111111
8 1 28.62584611111111 77.10560666666667
我已经尝试了下面的查询,但这给了我两个结果
SELECT * FROM `user_locations` WHERE `user_id` = 1 Group by latitude, longitude
如果相同的纬度和经度不断出现,我想找到它必须返回一个最新的行,然后如果纬度和经度发生变化,那么最新的行将会出现,如果在两者之间再次相同的纬度和经度来自以前的集合也应该回来。希望你能理解我的问题。谁能帮我解决这个问题。
【问题讨论】:
-
顺便说一下,在地球上,小数点后八位表示大约 1 毫米的精度。
-
位置每 10 秒进入数据库
-
你遇到我的问题了吗?我想要实现什么?.. 在这个组中不起作用
-
@Strawberry 你有没有检查我的预期输出
标签: sql mariadb subquery gaps-and-islands