写一段sql语句,对表crjjl中的完全重复的记录进行去重
时间: 2024-09-25 21:16:17 浏览: 42
SQL语句去掉重复记录,获取重复记录
要从表`crjjl`中去除完全重复的记录(假设我们基于多个字段如`field1`, `field2`, 和 `field3`),你可以使用以下Oracle SQL语句:
```sql
DELETE t1
FROM crjjl t1
JOIN (
SELECT field1, field2, field3,
ROW_NUMBER() OVER (PARTITION BY field1, field2, field3 ORDER BY ROWID) AS row_num
FROM crjjl
) t2 ON t1.field1 = t2.field1 AND t1.field2 = t2.field2 AND t1.field3 = t2.field3
WHERE t2.row_num > 1;
```
这个查询首先通过`ROW_NUMBER()`窗口函数给每个唯一组分配一个行号,其中`ORDER BY ROWID`确保了当字段值相同时,ROWID最小的记录会被保留。外部的`DELETE`语句则删除那些行号大于1的记录,也就是除了每个唯一组的第一个记录。
阅读全文