MS SQL基于确定一段时间内峰值量的时间查询总计

时间:2015-02-05 17:12:13

标签: sql-server datetime volumes

我有一个包含大量记录的数据库,每个记录都有一个日期时间和以它为单位捕获的文件大小(以字节为单位)。

表:

ID          DateTime                   FileSize
000001      2013-01-01 01:00:07        1535112
000002      2013-01-01 01:00:08        2506843

等等

我想要一个查询来确定给定时间段内的峰值音量。例如,在任何10分钟的窗口中,如果文件大小超过200MB,那么我想知道那个10分钟的窗口。我不确定运行总计是否理想,但我不确定如何计算它。

干杯。

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效,希望它不会太慢:

select
    T.DateTime,
    D.Total
from table T
cross apply (
    select sum(FileSize) as Total 
    from table T2 
    where T2.DateTime >= T.DateTime and 
      T2.DateTime < dateadd(minute, 10, T2.DateTime)
) D
where
  D.Total > 200000000

如果金额超过限额,这仍然会带来更长时间的点击。