【发布时间】:2021-06-20 15:53:58
【问题描述】:
我有一个大表,结构如下:
| dt | veh_id | lat | long |
|---|---|---|---|
| 2021-01-14 13:00:00 | 123456ABC | 26.56602763823091 | 2.937412284992731 |
| 2021-01-14 13:00:00 | 1762GH | 26.56602763823091 | 2.937412284992731 |
| 2021-01-14 13:00:00 | 189725FT | 26.56602763823091 | 2.937412284992731 |
| 2021-01-14 13:52:07 | 123456ABC | 27.03312220493411 | 2.6008171450629343 |
| 2021-01-14 14:02:27 | 123456ABC | 27.195391148992073 | 2.490953866466876 |
我想要计算(如果可能的话)是基于相同车辆 ID 行驶的额外行数。
| dt | veh_id | lat | long | Time | Distance (Miles) | Speed (MPH) |
|---|---|---|---|---|---|---|
| 2021-01-14 13:00:00 | 123456ABC | 26.56602763823091 | 2.937412284992731 | 0 | 0 | 0 |
| 2021-01-14 13:00:00 | 1762GH | 26.56602763823091 | 2.937412284992731 | |||
| 2021-01-14 13:00:00 | 189725FT | 26.56602763823091 | 2.937412284992731 | |||
| 2021-01-14 13:52:07 | 123456ABC | 27.03312220493411 | 2.6008171450629343 | 00:52:07 | 39.5 | 45.4 |
| 2021-01-14 14:02:27 | 123456ABC | 27.195391148992073 | 2.490953866466876 | 00:06:20 | 13.2 | 76.6 |
这是非常多的行,目前数据仅在日表中,每个表包含 1 天。然而,这可能会被合并以在多天内运行此查询。我对任何超过一定速度的车辆感兴趣,因此在此列上进行过滤会很棒。
提前感谢你们非常聪明的人。 :)
此数据位于 MariaDB (10.3)(数据库中,但可以导出到任何内容以帮助我实现此目的。 我不知道从哪里开始,并尝试在 Power BI 中运行它,其措施取得了部分成功,但内存不足,我花了几天时间尝试,现在几乎放弃了。
我在 MySQL 方面有点新手,虽然我可以使用基本命令,但我从未尝试过这样的事情,甚至不确定是否可能?任何帮助或指导表示赞赏。
【问题讨论】:
-
忘记添加(如乌鸦飞行)Haversine(大圆)距离很好,不需要通过公路,这只是为了获得平均值,不必非常准确。
-
Edit 问题并展示您已经尝试过的内容。解释失败的原因/位置。具体(错误消息、意外结果等)。
-
select version();说什么? -
假设 10.2 或更高版本,您将为此使用 mariadb.com/kb/en/lag
-
幸运的是,有一个编辑按钮