我在Oracle 11g中有一个表,其中包含针对不同用户的多条记录,我希望从表中删除较旧的多余记录,并为特定用户保留5条最新记录。
实施例: 考虑下面的表截图,其中包含多个用户记录" JACK"," ANGEL"," MACK"我必须为每个基于列#34; CREATED_ON"的新用户保留5条记录(行)。并删除较旧的。
任何人都可以为我提供一个示例Oracle查询来执行上述方案。
先谢谢。
答案 0 :(得分:3)
delete from testp
where id in
( select id
from
(
select id, row_number() over (
partition by name order by created_on desc ) rn
from testp)
where rn > 5
)
假设: