非常感谢任何人的帮助..
我有一个包含大量字段的表,但我要查询的是
'MachineId'< - Id Field
'DateLogged'< - 日期和时间服务呼叫记录
MachineId代表现场的物理机器。我所追求的是,该机器在7天内有3次通话记录。不仅是在过去七天,而且在机器的使用寿命期间。
我想返回一个符合此条件的MachineId表。
我正在敲打我的脑袋。任何帮助将不胜感激。答案 0 :(得分:2)
您可以使用自联接和聚合执行此操作。我们的想法是在表格中的每一行之后的一周内找到任何匹配的记录。然后按原始行聚合并计算匹配数:
select t.MachineId, t.DateLogged, count(*) as NumIncidents
from table t inner join
table t2
on t.MachineId = t2.MachineId and
t2.DateLogged between t.DateLogged and dateadd("d", 6, t.DateLogged)
group by t.MachineId, t.DateLogged
having count(*) >= 3;