mysql 按 A 列搜索重复项并按其他列的条件删除

mysql search for duplicates by column A and delete by criteria on othe columns

我有一个 mysql 数据库,其中包含一个 table 以及以下列:PartCode、Price 和 Quantity。目标是编写一个查询,搜索具有重复 'PartCode' 的行,然后按价格和数量比较它们,并删除具有较高 'Price' 值的行,但如果 'Quantities' 为0,则删除数量为0的。

A sample table would look like this:  
PartCode  -  Price  -  Quantity
 ABCD     -    5    -     2
 CDEF     -    6    -     1
 CDEF     -    4    -     1
 VZXY     -    8    -     4
 VZXY     -    7    -     0
 ....     -   ...   -    ...

And for the results, I'd like to get this:
PartCode  -  Price  -  Quantity
 ABCD     -    5    -     2
 CDEF     -    4    -     1
 VZXY     -    8    -     4
 ....     -   ...   -    ...

我找到了接收所有重复 PartCode 的解决方案:

SELECT `PartCode` FROM `Table` GROUP BY `PartCode` HAVING COUNT(*) > 1

我想不通的是,如何通过其他列比较来实现删除其中一个重复项。

提前致谢。

以下查询将从每个 PartCode 组中删除数量最多的一条记录,或者如果一条记录的数量为零,则会将其删除。

DELETE
FROM yourTable t1
WHERE (PartCode, Quantity) IN
(
    SELECT
        t.PartCode,
        t.qty
    FROM
    (
        SELECT
            PartCode,
            CASE WHEN MIN(Quantity) = 0 THEN MIN(Quantity) ELSE MAX(Quantity) END AS qty
        FROM yourTable
        GROUP BY PartCode
        HAVING COUNT(*) > 1
    ) t
)