Oracle 选择存在 2 的相同 ID



所以这个 Oracle 表的查询显示 2 行具有相同的 id

SELECT INDIVIDUAL_ID,DATE1,DATE2
FROM RESIDENCE_PERIOD
WHERE INDIVIDUAL_ID = 401865003800;

都好——

401865003800    20-05-02    20-05-20
401865003800    20-06-01    20-06-30

但是还有其他 ID 也具有 1 个以上的条目,因此此查询:

SELECT * 
FROM RESIDENCE_PERIOD rp 
WHERE  rp.INDIVIDUAL_ID IN
(SELECT rp2.INDIVIDUAL_ID
FROM RESIDENCE_PERIOD rp2
GROUP BY rp2.INDIVIDUAL_ID
HAVING COUNT(rp2.INDIVIDUAL_ID) > 1)
AND ROWNUM <=2
ORDER BY rp.INDIVIDUAL_ID;

有效,但带回 2 个不同的 ID,这两个 ID 都有 1 个以上的条目

276460366513
401865003800

我不在乎我得到哪个ID。我只是希望两个ID相同。

您最好使用这样的分析函数来获取具有多个记录的所有相同 id 的整行:

Select p.* from
(Select p.*,
Count(1) over (partition by P.INDIVIDUAL_ID ) as cnt
From RESIDENCE_PERIOD p) p
Where cnt>1
Order by INDIVIDUAL_ID

最新更新