gpt4 book ai didi

sql - 如何删除 Postgresql 中的所有重复行(不留下一个)

转载 作者:行者123 更新时间:2023-12-02 15:44:41 24 4
gpt4 key购买 nike

我想从数据库中删除同名的行。我检查了 Stackoverflow 并发现了类似这样的内容:

DELETE
FROM my_table mt1 USING my_table mt2
WHERE mt1.my_name = mt2.my_name AND mt1.unique_id<mt2.unique_id;

这当然有效,但会留下一行。我有一个要求:

如果有重复的行,我必须删除所有行(不留下一个)。

最佳答案

我们可以使用带有 HAVING 子句的 GROUP BY 作为子查询:

DELETE
FROM my_table
WHERE my_name IN
(SELECT
my_name
FROM
my_table
GROUP BY
my_name
HAVING
COUNT(*) > 1);

试用:db<>fiddle

关于sql - 如何删除 Postgresql 中的所有重复行(不留下一个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74653362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com