Hier is een benadering die de rij-ID's gebruikt:
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
)
De subquery genereert de lijst met rij-ID's voor rijen die niet de laatste in hun groep zijn (dwz alle records met hetzelfde par_num ,tran_num
) - het meest recente record per groep wordt geïdentificeerd met row_number()
. De buitenste query verwijdert alleen die rijen.