イベントを記録するSQL Server 2012データベースに、StartDate
とEndDate
という列のテーブルがあります。ある期間内にすべてのレコードを集計し、重複期間を数えずに、どのイベントがアクティブであったかを判断する必要があります。私のテーブルはこのようになりますたとえば、:2017-08-28 12:00:00 PM
から2017-08-28 2:00:00 PM
にした検索する時間レコードのオーバーラップを検索
id StartDate EndDate
=======================================================
1 2017-08-28 12:00:00 PM 2017-08-28 12:01:00 PM
2 2017-08-28 1:15:00 PM 2017-08-28 1:17:00 PM
3 2017-08-28 1:16:00 PM 2017-08-28 1:20:00 PM
4 2017-08-28 1:30:00 PM 2017-08-28 1:35:00 PM
そして、私の期間、その後、私の所望の出力は次のようになります。
Duration of Events Active = 00:11:00
私がすることができましたレコードを集約して合計時間(基本的にはちょうどEndDate
- StartDate
)を取得しますが、重複する時間を排除する方法を理解できません。どんな助けもありがとう。ありがとう!
ボーダーケースを理解するためにオーバーラップを含むサンプルを追加できますか? –
必要なグラニュラリティ(たとえば、1分)に従って、すべての間隔を一連の行に分割します。必要な間隔内の別個の行を数える – Serg