所以这个 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