我试图计算一个表中只有一个会话的唯一事件的数量。我们有一个名为 Session Tracking 的表,它存储事件编号,还存储该会话的先前状态和当前状态。我想计算只有一个会话的事件数量,并且我还想计算可能有多个会话的事件数量,但前提是以下会话开始于关闭并结束于关闭。基本上不计算在聚合列表中不改变状态的会话。
例子:
Incident ID Start Status End Status
1 Open Closed
1 Closed Closed
2 Open Closed
3 Open Closed
4 Open Open
4 Open Closed
我想获得前三个事件,因为事件 2 和 3 都只有一个会话,并且想要计算第一个事件,因为它在它已经关闭之后有一个会话,而第二个会话不计算在内。第四个事件不会被计算在内,因为它有不止一个会话是开放的。
这是我正在使用的声明,并认为可能有问题......
SELECT Incident, COUNT(Incident)
FROM Session_Tracking
WHERE NOT (Prev_Status = 'Closed' AND Current_Status = 'Closed')
GROUP BY Incident
HAVING COUNT(Incident) = 1