我有一些数据如下(这里只是几行示例,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:00
和 2012-10-01T22:00
不应在同一“时间框架日”中。 2012-09-30T22:00
和 2012-10-01T21:59
可以在同一天。
将此与 1-10 和 10-20 等阈值进行比较。 10 属于哪里?
关于sql - 分组总和()按灵活间隔分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13369638/