gpt4 book ai didi

mysql - 如何在sql中查找预定义时间段内表中的重复记录

转载 作者:行者123 更新时间:2023-11-29 22:01:10 25 4
gpt4 key购买 nike

例如,我有下表

Mobile number  Timestamp  
123456 17-09-2015 11:30
455677 17-09-2015 12:15
123456 17-09-2015 12:25
453377 17-09-2015 13:15

如果现在是 11:30,我想扫描我的表并查找过去 1 小时内具有相同数字的行。

这是我的 SQL 语句:

select a.number, a.time
from mytable a inner join
(select number, time
from mytable b
where time>=now()-Interval 1 hour and time<=now ()
group by number
Having count(*) > 1
) b
on a.number = b.number and a.time = b.time

我想找到 1 小时内发生的具有相同数字的重复 rown。我应该输出数字和时间戳。

最佳答案

只使用exists怎么样?

select t.*
from mytable t
where t.time >= now() - Interval 1 hour and
t.time <= now() and
exists (select 1
from mytable t2
where t2.number = t.number and
t2.time >= now() - Interval 1 hour and
t2.time <= now () and
t2.time <> t.time
);

但是,我怀疑您的查询的问题在于与 time 的连接。只需从子查询和 on 子句中删除时间,您就会得到所有数字。或者,使用分组依据:

select t.number, group_concat(time)
from mytable t
where t.time >= now() - Interval 1 hour and
t.time <= now()
group by t.number
having count(*) > 1;

关于mysql - 如何在sql中查找预定义时间段内表中的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630688/

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