gpt4 book ai didi

sql - 如何删除 SQL 中的重复项但保留一份副本?

转载 作者:行者123 更新时间:2023-12-02 04:45:08 25 4
gpt4 key购买 nike

我在 SQL 中有下表,订单行如下:

RowId     OrderId     Type     Text
----------------------------------------
1 1 5 "Sometext"
2 1 5 "Sometext"
3 2 4 "Sometext"
4 3 5 "Sometext"
5 2 4 "Sometext"
6 1 3 "Sometext"

每个订单不能有重复的类型,但可以有多个不同的类型。

第 1 行和第 2 行与订单 1 重复,但第 6 行没问题。

第 3 行和第 5 行与订单 2 重复。

我需要删除所有重复数据,因此在本例中我需要删除第 2 行和第 5 行

删除数据的最佳查询是什么?或者甚至只返回包含要删除的重复项的 RowID 列表(或者相反,要保留的 RowID 列表)?

谢谢。

最佳答案

尝试一个简单的方法:

DELETE FROM t
WHERE rowid NOT IN (
SELECT min(rowid) FROM t
GROUP BY orderid, type
)

fiddle here .

请注意,您似乎希望在重复时保留较低的 rowid。这就是我保留 min 的原因。

关于sql - 如何删除 SQL 中的重复项但保留一份副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19922039/

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