events
ユーザーのイベントを含むテーブルがあります。次に例を示します。
PK | user | event_type | timestamp
--------------------------------
1 | ab | DTV | 1
2 | ab | DTV | 2
3 | ab | CPVR | 3
4 | cd | DTV | 1
5 | cd | DTV | 2
6 | cd | DTV | 3
私がやりたいのは、 ごとuser
に 1 つのイベントのみを保持することです。つまり、最新のものtimestamp
とevent_type = 'DTV'
.
上記の例に削除を適用すると、テーブルは次のようになります。
PK | user | event_type | timestamp
--------------------------------
2 | ab | DTV | 2
6 | cd | DTV | 3
このタスクを達成する何かを思い付くことができる人はいますか?
更新: Sqlite を使用しています。これは私がこれまでに持っているものです:
delete from events
where id not in (
select id from (
select id, user, max(timestamp)
from events
where event_type = 'DTV'
group by user)
);
これは改善できると確信しています。何か案は?