我有一個事件表是這樣的:SQL用於報告基於事件
-----------------------------------------------------------
timestamp | station | event_type | count
-----------------------------------------------------------
2013-02-22 01:00:00 | 1 | log_in | -1
2013-02-22 01:05:00 | 1 | alert | 5
2013-02-22 01:08:00 | 1 | alert | 3
2013-02-22 01:10:00 | 1 | log_out | -1
2013-02-22 01:30:00 | 2 | log_in | -1
2013-02-22 01:31:00 | 2 | alert | 2
2013-02-22 01:35:00 | 2 | log_out | -1
-----------------------------------------------------------
我如何寫SQL,產生這樣的報告:
--------------------------------------------------------------------------
station | log_in | log_out | count
--------------------------------------------------------------------------
1 | 2013-02-22 01:00:00 | 2013-02-22 01:10:00 | 8
2 | 2013-02-22 01:30:00 | 2013-02-22 01:35:00 | 2
--------------------------------------------------------------------------
基本上,我想總結註銷登錄和註銷之間的警報。
有人能指點我正確的方向嗎?
更新:下面的作品
JW的回答,但我做到了上面的表中的錯誤。對於警報事件,我不知道站點ID,所以表格應該如下所示。
-----------------------------------------------------------
timestamp | station | event_type | count
-----------------------------------------------------------
2013-02-22 01:00:00 | 1 | log_in | -1
2013-02-22 01:05:00 | -1 | alert | 5
2013-02-22 01:08:00 | -1 | alert | 3
2013-02-22 01:10:00 | 1 | log_out | -1
2013-02-22 01:30:00 | 2 | log_in | -1
2013-02-22 01:31:00 | -1 | alert | 2
2013-02-22 01:35:00 | 2 | log_out | -1
-----------------------------------------------------------
如果沒有對應於log_in記錄的log_out記錄,報告會發生什麼情況? – peterm 2013-02-22 08:15:01
理想情況下,SQL應處理該情況,即缺少的log_out與最後一次警報事件的時間相同。 – keithc 2013-02-22 11:33:10