简体   繁体   English

根据两列SQL删除重复项

[英]Remove duplicates based on two columns SQL

Hi everyone, 嗨,大家好,

I need to remove duplicates based on two columns. 我需要删除基于两列的重复项。 ANON ID and USER ID. 匿名ID和用户ID。 They have a many to many relationship. 他们有多对多的关系。 ie an anon id can have several user id's and vice versa. 即一个匿名ID可以有多个用户ID,反之亦然。 I need to leave just one instance. 我只需要离开一个实例。 Anywhere anon id OR user id appears as a duplicate, this needs to be removed. 任何匿名ID或用户ID重复出现的地方,都需要将其删除。

Sample data 样本数据

在此处输入图片说明

Only rows 1, 4, 6, 7 should remain. 仅应保留第1、4、6、7行。

I know I can use rownum() and delete where rownum > 1 for ONE duplicate column. 我知道我可以使用rownum()并删除其中rownum> 1的一个重复列。 However in this case I need to remove any row where EITHER ANON id or USER ID has already appeared. 但是,在这种情况下,我需要删除已经出现EITHER ANON ID或USER ID的任何行。

Any help would be appreciated. 任何帮助,将不胜感激。

You can have two rownum() functions and delete based on either results. 您可以具有两个rownum()函数,并根据任一结果删除。 If for some reason you can't have 2 rownum functions in one query, you can use dense_rank too. 如果由于某种原因在一个查询中不能包含2个rownum函数,则也可以使用density_rank。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM