oraclesql去重
时间: 2023-08-19 20:08:03 浏览: 105
可以使用以下SQL语句来实现Oracle SQL的去重操作:
```
-- 查出了去重后rowid最小的那个, 之后把其他的都删掉了
DELETE FROM test p WHERE p.ROWID NOT IN (
SELECT MIN(t.ROWID) FROM test t GROUP BY (t.id, t.test01, t.test02) HAVING COUNT(1) >= 1
)
```
这个SQL语句会删除表test中除了去重后rowid最小的记录之外的所有记录。\[1\]
另外,你也可以使用以下SQL语句来查询表中重复的数据:
```
-- group by后面就是把表中所有字段都列出来
SELECT * FROM test t GROUP BY (t.id, t.test01, t.test02) HAVING COUNT(1) >= 1
```
这个SQL语句会根据id、test01和test02字段进行分组,并返回重复出现的记录。\[2\]
如果你想在Person01表中查询多余的重复数据,可以使用以下SQL语句:
```
-- 查询表中多余的重复数据,根据ID字段来判断是否重复
SELECT * FROM PERSON01 WHERE ID IN (
SELECT ID FROM PERSON01 GROUP BY ID HAVING COUNT(ID) > 1
)
```
这个SQL语句会根据ID字段进行分组,并返回重复出现的记录。\[3\]
#### 引用[.reference_title]
- *1* *2* [Oracle 数据去重sql](https://blog.csdn.net/czc_292/article/details/122811160)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [Oracle 数据去重](https://blog.csdn.net/zy_zhangruichen/article/details/124439600)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文