我试图弄清楚如何编写查询来执行此操作。我在表ID1和ID2中有两个ID。下面是我想要的。
想
我不确定如何使用Oracle SQL执行此操作。我确实编写了代码来进行分组。但是,我无法使其余代码正常工作,包括ID1大于1的部分。完成更多代码后,我将发布更多代码。
数据
ID1 ID2
1 33
1 33
5 44
6 44
7 8
想
ID1 ID2
5 44
6 44
尝试密码
select ID2,
COUNT(*)
from TABLE1
GROUP BY ID2
HAVING COUNT(*)>1
答案 0 :(得分:2)
如果需要整个行,则可以使用窗口功能。与其他几个数据库不同,Oracle支持COUNT(DISTINCT ...)
作为窗口函数,因此很容易:
select id1, id2
from (select t.*, count(distinct id1) over(partition by id2) cnt from mytable t)
where cnt > 1
ID1 | ID2 --: | --: 5 | 44 6 | 44