我需要将数据从另一个表迁移到我的。但是,我必须用来加入它们的ID不是唯一的(来自任何一个表的大约10%的ID都是重复的,它们不是主键)。
例如。表A的ID为(1, 1, 2, 3)
,表B的值为(1, 2, 2, 3, 4)
我如何加入它们,以便它们省略重复项或从另一个表中取任何值作为正确的链接?
我的目标是返回一个视图,其中我正在加入的ID列中根本没有重复的行。
答案 0 :(得分:0)
如何使用row_number()
进行查询:
select a.*, b.*
from (select a.*, row_number() over (partition by id order by id) as seqnum
from tablea a
) a join
(select b.*, row_number() over (partition by id order by id) as seqnum
from tableb b
) b
on a.id = b.id and a.seqnum = 1 and b.seqnum = 1;