我有一個表與緊急事件相關的數據。我期待比較多少事件重疊(按時間)。我知道數據庫本質上是無序的,但我有事件開始(和結束)時間,所以我可以按時間排序。比較表內的數據
我認爲最終的結果將是一個結果集有每個記錄,並且表示它是否覆蓋的任何事件的額外字段(0爲無,1爲一個重疊,2兩個重疊...)。歷史上存在有限數量的重疊(6是當前最大值),但可能有更多。
目前,我在Excel中進行這種類型的分析,有一個幫助列將當前記錄與以前的記錄進行比較以確定是否有重疊(或多少),並且它工作正常,但似乎我應該是能夠在SQL中嚴格完成此操作。
編輯:下面是Excel中的一個樣本,但數據在一個單一的,SQL表中。我有數據庫的管理權限,所以我可以實現幾乎任何解決方案 - 除了更改數據庫結構(它是一個COTS系統)。我已經包含重疊列的公式。另外,我停止了2個重疊的樣本公式,但當我提出答案時,我會說明更多。
Incident Start End Overlap Overlap Formula
1 2012-01-01 07:00 2012-01-01 08:00
2 2012-01-02 07:00 2012-01-02 08:00 0 =IF(C2>B3,1,0)
3 2012-01-02 07:30 2012-01-02 08:30 1 =IF(C3>B4,IF(C2>B4,2,1),0)
4 2012-01-03 07:00 2012-01-03 08:00 0 =IF(C4>B5,IF(C3>B5,2,1),0)
5 2012-01-04 07:00 2012-01-04 08:00 0 =IF(C5>B6,IF(C4>B6,2,1),0)
6 2012-01-04 07:30 2012-01-04 08:30 1 =IF(C6>B7,IF(C5>B7,2,1),0)
7 2012-01-04 07:45 2012-01-04 08:45 2 =IF(C7>B8,IF(C6>B8,2,1),0)
8 2012-01-04 08:45 2012-01-04 09:45 0 =IF(C8>B9,IF(C7>B9,2,1),0)
9 2012-01-05 07:00 2012-01-05 08:00 0 =IF(C9>B10,IF(C8>B10,2,1),0)
你能展示幾行樣本數據和期望的結果嗎?然後,我們可以構造一個有用的答案,而不是在模式/數據處進行猜測,併爲您提供諸如foo和bar之類的表和列名稱的查詢。同時發佈您的Excel功能可能對您確切地瞭解您的工作非常有用。 –
我現在離開了我的辦公桌,但當我回來時會添加一些數據。 Thx – dav