0
我有一個表,看起來像值如下:刪除行基於相鄰行
eventId activity timestamp
1 0 2012-10-22 20:10:00
2 0 2012-10-22 20:10:20
3 1 2012-10-22 20:11:25
4 1 2012-10-22 20:12:20
5 1 2012-10-22 20:12:22
6 0 2012-10-22 20:12:30 <--
7 1 2012-10-22 20:12:25 <--
8 0 2012-10-22 20:14:46
9 0 2012-10-22 20:14:48
10 1 2012-10-22 20:15:45
11 0 2012-10-22 20:16:00
12 0 2012-10-22 20:17:00
13 0 2012-10-22 20:17:13
我想刪除具有爲0的活動,而不是按時間順序旁邊的每一行所以從這個例子中我將刪除具有eventID 1,8,12和13的行。可以將事件異步地插入到表中,如行6和7所示。
I知道我可以通過檢查每個單獨的行併發出一個查詢來刪除它,如果它符合我的標準,可以在循環中執行此操作,但這非常低效。我想知道是否可以在一個查詢中完成這一切。
好像如果我可以做同樣的事情到
delete from mytable
where activity = 0
and (rownumber()+1).activity = 0
and (rownumber()-1).activity = 0
order by timestamp
這將是簡單的,但我不認爲這樣的功能是可能的。
你可以嘗試一個子查詢,使用'ID-1'和'ID + 1'來檢查'相鄰'列 –