按灵活间隔分区的分组 sum()



我有一些数据如下(这里只有几个示例行,tablesize > n千个条目)

timestamp         duration
2012-09-30T22:00  10800
2012-10-01T08:00   7200
2012-10-01T15:00   3600
2012-10-01T22:00  10800
2012-10-02T07:00   3600
2012-10-02T14:00  18000

并旨在实现以下目标:

date               totalDuration
2012-09-30        21600
2012-10-01        32400

等等。

持续时间应按间隔求和,在此示例中,间隔从每天22:00开始。它是SQL Server 2008。

select 
    cast(dateadd(hour, -22, date) as date), 
    sum(duration) totalDuration
from yourtable
group by cast(dateadd(hour, -22, date) as date)

但是,您应该注意,2012-09-30T22:002012-10-01T22:00不应处于同一"时间范围日"。 2012-09-30T22:002012-10-01T21:59可以在同一天。

将此与具有 1-10 和 10-20 等阈值进行比较。10属于哪里?

最新更新