SQL Server之前2008-12選擇第一和第二條記錄X
我有表:
InteractionKey char(18)
dEventTime datetime
SeqNo int
cEventData1
將有每InteractionKey多個條目 - dEventTime只出去秒和的SeqNo遞增如果兩個條目在同一秒出現。
我需要做的是選擇第一和第二條記錄的記錄,其中
cEventData1 = 'Disconnect'
最終產品會給我通過cEventData1分組發生計數了。
我目前使用的遊標(將光標源更新暫時),我想用一個CTE- 但我真的理解他們的鬥爭......
任何想法,將不勝感激!
與數據採集更新
INTERACTIONKEY dEventTime SeqNo cEventData1
100186322420130722 2013-07-22 11:50:49.000 1 EnterPassword
100186322420130722 2013-07-22 11:50:49.000 2 CheckPassword
100186322420130722 2013-07-22 11:50:49.000 3 Attendant Disconnect
查詢將最好告訴我的結果 - :這裏要注意的行動列可以是簡單的「話務員斷開」作爲行動
cEventData1 Action Count
CheckPassword Attendant Disconnect 1
以下是我最終根據以下回答進行的查詢:
SELECT DISTINCT t1.InteractionKey,
DisconnectTime = t1.dEventTime,
PreviousEventTime = t2.dEventTime,
PreviousEvent = t2.cEventData1,
t2.SeqNo
FROM IVRHistory t1
OUTER APPLY
( SELECT TOP 1 t2.dEventTime, t2.SeqNo, t2.cEventData1
FROM IVRHistory t2
WHERE t1.InteractionKey = t2.InteractionKey
AND t1.dEventTime >= t2.dEventTime
AND t1.SeqNo > t2.SeqNo
AND t2.cEventData1 <> 'Attendant Disconnect'
ORDER BY t2.dEventTime DESC, t2.SeqNo DESC
) t2
WHERE t1.cEventData1 = 'Attendant Disconnect'
您能否給一些模擬數據,你想要什麼的例子嗎? – christiandev
@zimdanen現在看看,謝謝。 – Wjdavis5