gpt4 book ai didi

mysql - 如何从每组行的最小和最大时间戳中选择mysql数据

转载 作者:行者123 更新时间:2023-11-30 23:03:46 26 4
gpt4 key购买 nike

我有一个 mysql 表,其中包含来自汽车 gps 跟踪器的数据(纬度、经度、速度、时间)。我想选择汽车停止(速度 = 0)超过 10 分钟、30 分钟、1 小时等的位置(纬度、经度和时间)。

我的表格是这样的:

id  latitude            longitude           speed   time-----------------------------------------------------------------------304 52.388983333333336  17.025338333333334  33.67   2014-03-26 08:00:04305 52.39029            17.023776666666667  34.65   2014-03-26 08:00:14306 52.391035           17.021631666666668  32.91   2014-03-26 08:00:24307 52.39103166666666   17.01917            30.03   2014-03-26 08:00:34308 52.39089833333333   17.01698            29.33   2014-03-26 08:00:44309 52.390593333333335  17.01532            9.54    2014-03-26 08:00:54310 52.39071333333333   17.015056666666666  0       2014-03-26 08:01:04311 52.39105333333333   17.01499            10.3    2014-03-26 08:01:14312 52.391485           17.01488            7.82    2014-03-26 08:01:24313 52.391705           17.014815           0       2014-03-26 08:01:34314 52.391705           17.014815           0       2014-03-26 08:01:44315 52.391705           17.014815           0       2014-03-26 08:01:54316 52.391705           17.014815           0       2014-03-26 08:02:04317 52.391705           17.014815           0       2014-03-26 08:02:14318 52.391705           17.014815           0       2014-03-26 08:02:24319 52.39232333333333   17.014648333333334  7.12    2014-03-26 08:02:34320 52.392345           17.014635           0       2014-03-26 08:02:44321 52.392345           17.014635           0       2014-03-26 08:02:54322 52.392345           17.014635           0       2014-03-26 08:03:04323 52.392345           17.014635           0       2014-03-26 08:03:15324 52.392345           17.014635           0       2014-03-26 08:03:25325 52.392345           17.014635           0       2014-03-26 08:03:35326 52.392558333333334  17.014471666666665  14.11   2014-03-26 08:03:45327 52.392316666666666  17.012883333333335  27.47   2014-03-26 08:03:55328 52.39194333333333   17.010871666666667  28.93   2014-03-26 08:04:05329 52.39152333333333   17.00893            22.28   2014-03-26 08:04:15330 52.391575           17.007181666666668  27.01   2014-03-26 08:04:25331 52.39164            17.00501            26.48   2014-03-26 08:04:35332 52.39159333333333   17.002895           28.34   2014-03-26 08:04:45333 52.391641666666665  17.000795           26.39   2014-03-26 08:04:55334 52.392156666666665  16.999178333333333  16.56   2014-03-26 08:05:05335 52.39223666666667   16.998796666666667  0       2014-03-26 08:05:15336 52.39234            16.99819            15.38   2014-03-26 08:05:25337 52.39261166666667   16.996865           17.1    2014-03-26 08:05:35338 52.392896666666665  16.995643333333334  20.91   2014-03-26 08:05:45339 52.39313666666666   16.99468            7.5     2014-03-26 08:05:55340 52.39331833333333   16.993918333333333  9.1     2014-03-26 08:06:05341 52.3936             16.992806666666667  16.86   2014-03-26 08:06:15342 52.393746666666665  16.992065           4.72    2014-03-26 08:06:25

寻求帮助,有什么想法吗?

最佳答案

您需要为每个“0”记录添加一个标识符,以便将它们组合在一起。一个简单的度量是数据中它之前的非零记录的数量。

select latitude, longitude, min(time) as StartTime, max(time) as EndTime
from (select t.*,
(select count(*)
from tracker t2
where t2.time <= t.time and
t2.speed > 0
) as grp
from tracker t
) t
group by grp, latitude, longitude;

然后您可以使用 having 子句来获取您感兴趣的行:

having max(time) >= min(time) + interval 1 hour

例如。

关于mysql - 如何从每组行的最小和最大时间戳中选择mysql数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22734158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com