Предполагая, что желаемым конечным результатом является таблица с этими 3 строками
Item Ref1 Ref2 Timestamp
1 A test1 2/3/2012 12:00:00
2 B prod2 2/3/2012 11:00:00
2 A prod2 2/3/2012 12:00:00
Что-то вроде
DELETE FROM table_name a
WHERE EXISTS( SELECT 1
FROM table_name b
WHERE a.item = b.item
AND a.ref1 = b.ref1
AND a.timestamp < b.timestamp );
должен работать при условии, что нет двух строк с одинаковыми Item
и Ref1
, у которых обе одинаковые Timestamp
. Если может быть несколько строк с одинаковыми Item
и Ref1
, то оба имеют самый последний Timestamp
и при условии, что вам все равно, какой из них вы сохраните
DELETE FROM table_name a
WHERE EXISTS( SELECT 1
FROM table_name b
WHERE a.item = b.item
AND a.ref1 = b.ref1
AND a.timestamp <= b.timestamp
AND a.rowid < b.rowid);