3

私は次のようないくつかのデータを持っています(ここにほんの数行の例、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。この例では、間隔は毎日から始まります。SQLServer2008です。

4

1 に答える 1

3
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 はどこに属しますか?

于 2012-11-13T22:05:57.157 に答える