これと同じタイトルの質問があることは承知していますが、それが私の質問に対応しているかどうかはわかりません。
次のようなデータがあります。
ID Current Nxt
1 1A 1B
1 1B 1C
2 2A 2B
3 3A 3B
3 3B
Excel '=COUNTIF($B$2:$B$6,C2)' で countif を使用すると、次のようなデータを取得できます (数式は発生した列にあります)。
ID Current Nxt Occurred
1 1A 1B 1
1 1B 1C 0
2 2A 2B 0
3 3A 3B 1
3 3B 0
基本的に、Nxt のスケジュールされたイベントが実際に発生したかどうかを示すことに関心があります (データに存在するかどうかが示されます)。
ただし、次のような SQL クエリでこれを複製したいと思います。
SELECT
ID,
Current,
Nxt
FROM
Table
答えは、次のようなことをすることにあると思います。
sum(case when Current='1B' THEN 1 ELSE 0 END) over (partition by Current)
ここで提案されているように:COUNTIF集計関数に相当するSqlサーバー。上記は1つのレコードに対して機能しますが、問題は、次のように機能しないため、基準をハードコーディングするのではなく、Nxt 列の内容を参照するようにする必要があることです。
sum(case when Current=Nxt THEN 1 ELSE 0 END) over (partition by Current)
これは、Current と Nxt が実際には行で一致しないためだと思いますか?
参考までに、私のデータベースは Oracle 11 を使用しています。