sql - 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,它们都有超过 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
推荐阅读
- logging - 在 Azure DevOps 服务器中运行时 Selenium 日志在哪里
- python - 使用分隔符拆分行列表中的行
- python - 对象检测算法在测试算法后输出检测到的对象周围没有边界框的图像
- erlang - Erlang 可以使用哪些代码格式化程序?
- keras - model.fit() 生成“NoneType object is not callable”错误,有什么调试提示吗?
- php - array_flip 和键搜索与 array_search 基准
- ios - iOS 13 - VNDocumentCameraViewController 最大扫描次数
- java - 在 Eclipse(Java) 和 Android Studio 中使用 SQLite db
- intellij-idea - 使用来自 lombok 的@Slf4j Annotation,但仍然出现方法日志未知的错误
- nginx - 将url获取参数转换为nginx中的url段