Här är ett tillvägagångssätt som använder rad-ID:n:
delete from transaction
where
last_update = date '2020-03-01'
and rowid in (
select rid
from (
select
rowid rid,
row_number() over(partition by par_num ,tran_num order by last_update desc) rn
from transaction
) t
where rn > 1
)
Underfrågan genererar listan med rad-ID för rader som inte är de senaste i sin grupp (dvs. alla poster som har samma par_num ,tran_num
) - den senaste posten per grupp identifieras med row_number()
. Den yttre frågan tar bara bort dessa rader.