delete from test n
where n.id in (
select s.id
from test s,
(select count(id), min(id) minid, (m.name || m.age) gg
from test m
group by m.name, m.age) d
where s.id <> d.minid
and s.name || s.age = d.gg)
delete test t where t.rowid > (
select min(t2.rowid) from test t2 where t.name = t2.name and t.age = t2.age
)
delete from (select rank() over partition by (col1,col2) num from t1)
where num > 1
id name age