セッションが 1 つしかないテーブル内の一意のインシデントの数を取得しようとしています。インシデント番号を格納し、そのセッションの以前のステータスと現在のステータスも格納する、Session Tracking というテーブルがあります。セッションが 1 つしかないインシデントの数と、複数のセッションを持つ可能性のあるインシデントの数を取得したいのですが、次のセッションが閉じて開始され、終了した場合に限ります閉まっている。基本的に、集計リストでステータスを変更しないセッションはカウントしません。
例:
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 はどちらもセッションが 1 つしかなかったため、最初の 3 つのインシデントを取得したいと考えています。最初のインシデントは、すでに終了した後にセッションがあったためカウントしたいと考えています。2 番目のセッションはカウントされません。4 番目のインシデントは、開いているセッションが複数あったため、カウントされません。
これは私が使用しているステートメントであり、何かがおかしいのではないかと思います...
SELECT Incident, COUNT(Incident)
FROM Session_Tracking
WHERE NOT (Prev_Status = 'Closed' AND Current_Status = 'Closed')
GROUP BY Incident
HAVING COUNT(Incident) = 1