删除重复行,同时对另一行进行分组

时间:2016-06-24 08:49:51

标签: mysql

我在这里有一个问题,我无法用谷歌解决。我得到了一个带行号和参数的表。现在我想删除每个数字具有相同参数的重复行:

Number    Parameter  id
3         22         1
3         22         2
2         32         3
1         44         4
2         12         5
4         22         6
1         44         7
2         12         8
2         36         9

Number    Parameter  id
3         22         1
2         32         3
1         44         4
2         12         5
4         22         6
2         36         9

我试过

DELETE n1 FROM a n1,a n2 WHERE n1.parameter = n2.parameter AND n1.id > n2.id AND n1.id <> n2.id

但是这会删除具有重复参数的每一行,以便只保留其中一行。我需要以某种方式添加按编号分组。我想,但我不知道如何。

编辑:哦,我错过了添加ID行。当然,每一行都有一个ID行,我现在就添加它。

EDIT2:10086的答案有效!

1 个答案:

答案 0 :(得分:0)

尝试以下内容;)

DELETE t1
FROM a t1
INNER JOIN a t2
ON t1.id > t2.id
AND t1.Parameter = t2.Parameter
AND t1.Number = t2.Number;

SQLFiddle DEMO HERE

它将保持id值最低的行。