gpt4 book ai didi

mysql - 从mysql表中删除特定列值的重复行

转载 作者:行者123 更新时间:2023-11-29 06:30:04 25 4
gpt4 key购买 nike

我有一个像这样的“订单”表结构,其中包含 100,000 条记录:

date           orderid   type      productsales  other
01-Aug-2014 11 order 118 10.12
01-Aug-2014 11 order 118 10.12
18-Aug-2014 11 order 35 4.21
22-Aug-2014 11 Refund -35 -4.21
09-Sep-2014 12 order 56 7.29
15-Sep-2014 12 refund -56 -7.29
23-Oct-2014 13 order 25 2.32
26-Oct-2014 13 refund -25 -2.32

现在,我想要实现的是从我的表中删除那些重复的行,其中 orderid、type、productsales 和其他列值彼此相同,并且只保留一行(查看 orderid 的前两条记录11)。

但是,如果相同“type”订单的两条记录的“orderids”相同,但“productsales”和“other”列值不同,则不要删除这些行。我希望我阐明了我的观点。

我正在寻找一个 mysql 删除查询来执行此任务。

最佳答案

您应该添加一个 id 列。如果你不想使用临时表,你可能会做这样的事情(我没有测试过这个,所以......):

ALTER TABLE 'orders'
ADD COLUMN 'id' INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY Id(id)

DELETE
FROM orders INNER JOIN
(
SELECT TOP 1 id
FROM orders
WHERE COUNT(DISTINCT date,orderid,type.productsales,other) > 1
) dupes
ON orders.id = dupes.id

关于mysql - 从mysql表中删除特定列值的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28500084/

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