イベント テーブル:
id user type creation_date update_date
1 A AAA 1111 3333
2 A BBB 2222 4444
3 A CCC 3333 5555
4 A DDD 4444 6666
5 B AAA 3333 4444
6 B BBB 4444 5555
7 B CCC 5555 6666
8 C AAA 2222 3333
9 C BBB 1111 7777
10 C CCC 3333 4444
11 C DDD 4444 9999
タスク:
少なくとも 1 つの DDD イベントがあり、作成日までのユーザーの最新の非 DDD イベントが update_date までの最新の非 DDD イベントと異なるすべてのユーザーを検索します。
したがって、上記のレコードの場合:
ユーザー A には DDD イベントがあります。良い。ただし、最後に作成された非 DDD イベントと最後に更新された非 DDD イベントは同じです (イベント #3)。したがって、結果セットから除外されます。
ユーザー B には DDD イベントはありません。したがって、結果セットから除外されます。
ユーザー C には DDD イベントがあります。また、最後に作成された非 DDD イベント (#10) は、最後に更新された非 DDD イベント (#9) とは異なります。したがって、結果セットに含まれます。
結果セット:
user
C
GROUP BY や EXISTS など、さまざまなことを試しました。しかし、レコードの各グループを並べ替えるのに苦労しています。
何か案が?