我有一个包含重复项的表,我想为每个重复项只保留一行。
我可以使用我的 SQL 命令选择重复项:
SELECT DISTINCT ON (email, first_name, last_name) * from customer;
但我想在我之前的命令中使用 DELETE
。
这个命令应该可以正常工作吗?
DELETE FROM customer WHERE customer.id NOT IN
(SELECT id FROM
(SELECT DISTINCT ON (email, first_name, last_name) * from customer));
这是真的吗?
最佳答案
我猜你有一个 id
字段。
delete from customer
where id not in (
select min(id)
from customer
group by email, first_name, last_name
)
子查询查找您要保留的行的 ID。 然后你删除其他行
关于sql - 仅从特定的 Postgresql 表中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54257538/