从 mysql 表中的坐标数据中查找赤道



>我有一个表格来显示一些协调数据。 喜欢这个:

+------+-------------+-------------+
| fdid |  rtime      | lat         |
+------+-------------+-------------+
|    1 |  1589673600 | -40.1458523 |
|    2 |  1589673601 | -40.1458523 |
|    3 |  1589673602 | -40.1458523 |
|    4 |  1589673603 | -39.8598215 |
|    5 |  1589673604 | -39.8598215 |
|    6 |  1589673605 | -39.8598215 |
|    7 |  1589673606 | -39.8598215 |
|    8 |  1589673607 | -39.8598215 |
|    9 |  1589673608 | -39.8598215 |
|   10 |  1589673609 | -39.8598215 |
+------+-------------+-------------+

有名称为 lat 的字段,表示纬度

此外,rtime 是一个时间戳。

这些数据是地球上的车辆,现在我找到了车辆何时越过/或经过赤道 我的查询是这样的

SELECT 
*,
ROUND(rtime/1000,0) grtime,
count(*) acount,
min(rtime) mitime,
max(rtime) matime 
FROM `fds_data` 
WHERE `lat`<0.5 and lat>-0.5 
GROUP BY grtime;

但我认为这不是一个完整的 solution.is 有什么方法可以得到更好的结果!?

如果数据一致(每秒记录数据(,您可以找到 Equator 通过下一个简单查询:

SELECT *
FROM `table` `t1`
JOIN `table` `t2` ON `t2`.`rtime`  = (`t1`.`rtime` + 1) -- join next record
WHERE `t1`.`lat` * `t2`.`lat` <= 0; -- check Equator pass

最新更新