我可以用秒或分钟进行分组,如下所示:
SELECT datepart(minute, Time)
,count(*) as hits
FROM Log
GROUP BY datepart(minute, Time)
Run Code Online (Sandbox Code Playgroud)
有没有办法可以做同样的事情,但有一个指定的秒数,所以按"每10秒"分组一次?
更多信息:
这与之间的时间相结合:
SELECT datepart(minute, Time)
,count(*) as hits
FROM Log with (nolock)
WHERE Time between dateadd(minute, -2, getdate()) and getdate()
GROUP BY datepart(minute, Time)
Run Code Online (Sandbox Code Playgroud)
试试这个:
DATEDIFF (ss ,'19700101' ,Time ))将给出自1970年1月1日以来的秒数(您可以选择小于所有日期的另一个日期).除以10,每10秒钟就有一个GROUP BY:
SELECT DATEDIFF (ss ,'19700101' ,Time )/10, count(*) as hits
FROM Log
GROUP BY DATEDIFF (ss ,'19700101' ,Time )/10
Run Code Online (Sandbox Code Playgroud)
(随着时间的推移):
SELECT convert(varchar, min(Time), 108) time,
DATEDIFF (ss ,'19700101' ,Time )/10 sec_interval,
count(*) as hits
FROM Log
GROUP BY DATEDIFF (ss ,'19700101' ,Time )/10
Run Code Online (Sandbox Code Playgroud)