我正在尝试在MS Access中编写一个SQL查询,以计算每个ID在数据集中出现的次数。数据集的格式如下:
ID Time
1 12345
1 12346
1 12350
2 99999
2 99999
如果一个 ID 的 Time 在同一 ID 的另一个 Time 的3秒内,我只希望它被计算一次。因此结果应如下所示:
ID Count
1 2
2 1
时间列未格式化为日期时间,因此我不能使用datediff函数。任何帮助将不胜感激。
答案 0 :(得分:1)
此:
SELECT ID, COUNT(newtime)
FROM (SELECT DISTINCT ID, Time\3 AS newtime FROM times)
GROUP BY ID
使用Access中Time
的整数除法将Time\3
字段值三元组。
答案 1 :(得分:0)
@Andy G提供的评论对我有用:
“您首先需要一个函数来舍入(或舍入)至最接近的3的倍数。例如,请参见here(allenbrowne)。”
我将时间值四舍五入到最接近的3的倍数,并根据该标准进行计数。