postgresql 删除重复数据
时间: 2024-06-21 18:02:34 浏览: 240
数据库 查询删除重复数据
4星 · 用户满意度95%
PostgreSQL中删除重复数据可以通过以下步骤实现:
1. 使用SELECT语句查询出重复的数据,并记录下它们的主键或唯一索引;
2. 根据记录下的主键或唯一索引,使用DELETE语句删除重复的数据。
以下是一个删除重复数据的例子,其中我们假设有一个名为table_name的表,它包含多个字段,其中id字段为主键:
```
-- 查询重复数据
SELECT id, count(*)
FROM table_name
GROUP BY id
HAVING count(*) > 1;
-- 删除重复数据
DELETE FROM table_name
WHERE id IN (
SELECT id
FROM (
SELECT id,
ROW_NUMBER() OVER (partition BY field1, field2, ... ORDER BY id) AS rnum
FROM table_name
) t
WHERE t.rnum > 1
);
```
以上代码中,我们首先使用SELECT语句查询出所有重复的id,并记录下它们。然后,我们使用DELETE语句,删除所有满足条件的记录,其中条件是id在我们刚才记录下的所有重复id之中。
阅读全文