Her er en tilgang, der bruger række-id'erne:
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
)
Underforespørgslen genererer listen over række-id'er for rækker, der ikke er de seneste i deres gruppe (dvs. alle poster med samme par_num ,tran_num
) - den seneste post pr. gruppe identificeres ved hjælp af row_number()
. Den ydre forespørgsel sletter bare disse rækker.