pgsql删重复数据
时间: 2023-07-19 22:17:07 浏览: 111
如果你需要删除 PostgreSQL 数据库中的重复数据,可以使用以下两种方法:
**方法一:使用DISTINCT关键字**
使用DISTINCT关键字可以选择唯一的记录,然后将其插入到新的表中,最后删除原始表并将新表重命名为原始表的名称。以下是示例代码:
```sql
CREATE TABLE new_table AS SELECT DISTINCT * FROM original_table;
DROP TABLE original_table;
ALTER TABLE new_table RENAME TO original_table;
```
**方法二:使用CTE和窗口函数**
使用CTE(通用表达式)和窗口函数可以选择要删除的重复记录。以下是示例代码:
```sql
WITH cte AS (
SELECT column1, column2, column3, ROW_NUMBER() OVER (PARTITION BY column1, column2, column3 ORDER BY id) AS rn
FROM original_table
)
DELETE FROM original_table
WHERE id IN (SELECT id FROM cte WHERE rn > 1);
```
这将选择重复的记录并将其删除。请注意,您需要根据您的表结构和需求调整代码。
阅读全文