我在SQL Server 2012數據庫中有一個記錄事件的表,列StartDate
和EndDate
。我需要在特定時間段內彙總所有記錄,並確定任何事件處於活動狀態的持續時間,不包括重疊持續時間。例如,如果我的表看起來像這樣:查找重疊時間記錄
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
而我的時間來搜索來自2017-08-28 12:00:00 PM
到2017-08-28 2:00:00 PM
,然後我需要的輸出應該是:
Duration of Events Active = 00:11:00
我已經能夠彙總記錄並獲得總持續時間(基本上只是EndDate
- StartDate
),但我無法弄清楚如何排除重疊時間。任何幫助,將不勝感激。謝謝!
你可以添加一個樣本,包括重疊以瞭解邊界情況嗎? –
根據您需要的粒度(例如1分鐘),將每個間隔分解爲一組行。在需要的時間間隔內統計不同的行數 – Serg