一个简单的方法是
假设我有一个数据集,看起来像下面的
C1 | C2 | C3 | C4 | C5
1 NA NA NA 34
2 NA NA NA 39
3 NA NA NA 29
4 NA NA NA 17
5 NA NA NA 17
6 NA NA NA 34
如果我只想返回C5中存在重复项的行,我该怎么做?所以我想要第1行和第6行,以及第4行和第5行。
exists
:
select t.*
from t
where exists (select 1 from t t2 where t2.c5 = t.ct and t2.c1 <> t.c1);
您也可以使用窗口功能:
select t.*
from (select t.*, count(*) over (partition by c5) as cnt
from t
) t
where cnt >= 2;