gpt4 book ai didi

sql - 删除具有重复值的行

转载 作者:行者123 更新时间:2023-12-03 01:13:42 25 4
gpt4 key购买 nike

我必须清理包含重复行的表:

id: serial id
gid: group id
url: string <- this is the column that I have to cleanup

一个gid可能有多个 url值:

id    gid   url
---- ---- ------------
1 12 www.gmail.com
2 12 www.some.com
3 12 www.some.com <-- duplicate
4 13 www.other.com
5 13 www.milfsome.com <-- not a duplicate

我想对整个表执行一个查询并删除 gid 所在的所有行和url是重复的。在上面的示例中,删除后,我希望仅剩下 1、2、4 和 5。

最佳答案

;WITH x AS 
(
SELECT id, gid, url, rn = ROW_NUMBER() OVER
(PARTITION BY gid, url ORDER BY id)
FROM dbo.table
)
SELECT id,gid,url FROM x WHERE rn = 1 -- the rows you'll keep
-- SELECT id,gid,url FROM x WHERE rn > 1 -- the rows you'll delete
-- DELETE x WHERE rn > 1; -- do the delete

一旦您对第一个选择(指示您将保留的行)感到满意,请将其删除并取消注释第二个选择。一旦您对此感到满意(这表明您将删除的行),请将其删除并取消注释删除。

如果您不想删除数据,只需忽略 SELECT... 下的注释行即可。

关于sql - 删除具有重复值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15814400/

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