gpt4 book ai didi

mysql - 在 MySQL 中按具有非固定范围的时间间隔分组

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

我正在尝试编写一个查询,该查询将扫描连接尝试的数据库并找到一组在 1 小时内超过 x 次尝试的记录。

但是,这些一小时范围无法固定(即不仅是 6:00-7:00,还有 6:01-7:01、6:15-7:15 等)

这是一个例子

假设每小时最大尝试次数 = 2

num Date1   5:58  2   6:09  3   6:304   8:005   9:016   9:407   9:508   9:559   11:20

在此示例中,查询将返回行 1、2、3、5、6、7,因为 (1, 2, 3) 和 (5, 6, 7, 8) 彼此相隔 1 小时以内,并且总计超过 2 次尝试。

最佳答案

SELECT num FROM table t1
WHERE EXISTS (
SELECT 1 FROM table t2
WHERE t2.num <> t1.num
AND TIMESTAMPDIFF(MINUTE,t1.date,t2.date) <= 60
)

下面的查询应该更快,特别是如果你的日期列被索引

SELECT num FROM table t1
WHERE (MINUTE(TIMEDIFF((SELECT MAX(t2.date)
FROM table t2
WHERE t2.num <> t1.num
AND t2.date < t1.date),t1.date)) <= 60)
OR (MINUTE(TIMEDIFF((SELECT MIN(t2.date)
FROM table t2
WHERE t2.num <> t1.num
AND t2.date > t1.date),t1.date)) <= 60)

关于mysql - 在 MySQL 中按具有非固定范围的时间间隔分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23689708/

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