Mysql SQL查询以查找更大的重复行

Mysql SQL查询以查找更大的重复行,mysql,sql,Mysql,Sql,我在数据库中有一个如下所示的表: TABLE `partecipanti` ( `ID` int(11) NOT NULL, `Name` varchar(30) DEFAULT NULL, `Surname` varchar(30) DEFAULT NULL, `Score2` int(11) DEFAULT NULL, `Zero1` int(11) DEFAULT '0', `Zero2` int(11) DEFAULT '0', `Score1` int(10

我在数据库中有一个如下所示的表:

TABLE `partecipanti` (
  `ID` int(11) NOT NULL,
  `Name` varchar(30) DEFAULT NULL,
  `Surname` varchar(30) DEFAULT NULL,
  `Score2` int(11) DEFAULT NULL,
  `Zero1` int(11) DEFAULT '0',
  `Zero2` int(11) DEFAULT '0',
  `Score1` int(10) NOT NULL DEFAULT '0'
)
SELECT *,Score1 + Score2 as Total FROM partecipanti
ORDER BY Total DESC,Score2 DESC,Zero2 DESC,Score1 DESC, Zero1 DESC; 
以及一个如下所示的查询:

TABLE `partecipanti` (
  `ID` int(11) NOT NULL,
  `Name` varchar(30) DEFAULT NULL,
  `Surname` varchar(30) DEFAULT NULL,
  `Score2` int(11) DEFAULT NULL,
  `Zero1` int(11) DEFAULT '0',
  `Zero2` int(11) DEFAULT '0',
  `Score1` int(10) NOT NULL DEFAULT '0'
)
SELECT *,Score1 + Score2 as Total FROM partecipanti
ORDER BY Total DESC,Score2 DESC,Zero2 DESC,Score1 DESC, Zero1 DESC; 
现在我想做的是:当我有一个重复的记录(相同的名字和姓氏,而包括ID在内的其他数据是不同的)时,选择存储在字段
Total

我在考虑一个嵌套查询,在第一个查询中,我对数据进行排序,并使用group BY对它们进行分组,然后选择较高的元素。谁能帮我一下吗?谢谢

编辑:


如果我添加DISTINCT语句,查询似乎可以工作,可以吗?谢谢。

您可以尝试运行以下查询,并使用
max(id)
查找重复项


如果score2可以为空,请尝试以下操作:

select 
    p1.* 
from 
    partecipanti p1
    join ( select name, surname, max(score1 + coalesce(score2, 0) ) totalScore from partecipanti group by name, surname) p2 on
      p1.Name = p2.Name and
      p1.Surname = p2.Surname and
      p1.score1 + coalesce(p1.score2, 0) = p2.totalScore

使用我更新的答案。我在第一个回答中有一个拼写错误否,因为我不知道表格重复行的总分越高,ID是否也越高。