gpt4 book ai didi

mysql - 如何删除表中的记录以便每分钟有一个读数?

转载 作者:行者123 更新时间:2023-11-29 11:56:29 26 4
gpt4 key购买 nike

我的 mysql 数据库中有一个表用于存储 GPS 读数。它存储不同用户在不同时间获取的读数:

enter image description here

每个用户每分钟应包含一次读数。但是,由于收集读数的应用程序中存在错误,有时每个用户每秒只能读取一次,这对于我们的要求来说数据量太大了。

有没有一种方法可以使用查询从表中删除行,以便每个用户每分钟的读取次数不超过一次?如果可能的话,我想避免编写程序来执行此操作!

谢谢!

最佳答案

首先请注意,从表中删除大量记录可能会导致性能非常低下。通常,最好简单地重新创建表(或新表):

create table new_gps as
select gps.*
from gps join
(select userid, min(dt) as mindt
from gps
group by userid, floor(time_to_sec(dt) / 60)
) gpsmin
on gps.userid = gpsmin.userid and gps.dt = gpsmin.mindt;

您可以使用相同的想法进行删除:

delete gsp
from gps left join
(select userid, min(dt) as mindt
from gps
group by userid, floor(time_to_sec(dt) / 60)
) gpsmin
on gps.userid = gpsmin.userid and gps.dt = gpsmin.mindt
where gspmin is null;

关于mysql - 如何删除表中的记录以便每分钟有一个读数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33123440/

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