【发布时间】:2015-11-20 19:15:55
【问题描述】:
我需要查找重复记录(带有主记录 ID 和重复记录 ID):
select ciid, name from (
select ciid, name, row_number() over (
partition by related_id, name order by updatedate desc) rn
) where rn = 1;
这给了我主记录 ID,但它也包括没有重复的记录。
如果我使用
select ciid, name from (
select ciid, name, row_number() over (
partition by related_id, name order by updatedate desc) rn
) where rn > 1;
这会得到所有重复记录,但不是主记录。
我希望我能做这样的事情:
select ciid, name from (
select ciid, name, row_number() over (
partition by related_id, name order by updatedate desc
) rn, count(*) over (
partition by related_id, name order by updatedate desc
) cnt
) where rn = 1 and cnt > 1;
但我担心性能,甚至它是否真的在做我想要的。
如何仅获取具有重复项的主记录?请注意,name 不是唯一列。只有ciid 是唯一的。
【问题讨论】:
标签: sql oracle window-functions