【发布时间】:2020-09-28 15:24:13
【问题描述】:
我正在寻找一种方法来选择其中一列具有相同记录且日期时间在 5 分钟内的所有记录。我管理一个票务系统,并试图查看在 5 分钟时间内创建的所有类似票证。请参阅下面的示例数据集:
|ID |Subject |CreatedDateTime |
-------------------------------------
|1 |A |2020-09-28 11:01:00|
|2 |A |2020-09-28 11:02:00|
|3 |A |2020-09-28 11:03:00|
|4 |A |2020-09-28 11:03:09|
|5 |A |2020-09-28 11:04:52|
|6 |A |2020-09-28 11:15:00|
|7 |B |2020-09-28 11:20:00|
|8 |B |2020-09-28 11:20:00|
|9 |B |2020-09-28 11:20:00|
我的目标是只选择记录 1-5,因为 5 个相同的主题并且它们都是在 5 分钟内创建的。 6-10不应选择,因为Subject数量不够多,或者超出了规定的时间范围。
以下是我到目前为止的一个测试查询,但它没有考虑 5 分钟的范围(我只回顾 1 周,因此该子句):
SELECT Subject,COUNT(*)
FROM TableName
WHERE CreatedDateTime > DATEADD(day, -7, GETDATE())
GROUP BY Subject
HAVING COUNT(*) > 5
ORDER BY COUNT(*) DESC;
有没有什么方法可以只在接近的时间范围内看到类似的记录?提前谢谢大家!
【问题讨论】:
标签: sql sql-server