SQL:查找每个组的最大logging数

可能重复:
检索每个组中的最后一条logging

我有一个表,它有三个字段和数据。

名称,顶部,总计
猫,1,10
狗,2,7
猫,3,20
马,4,4
猫,5,10
狗,6,9

我想要为每个NameselectTotal值最高的logging,所以我的结果应该是这样的:

名称,顶部,总计
猫,3,20
马,4,4
狗,6,9

按总分名次排列了,但是由于结果给了组最高的logging。 任何人都可以指导我吗?

 select Name, Top, Total from sometable where Total = (select max(Total) from sometable i where i.Name = sometable.Name) 

要么

 select Name, Top, Total from sometable inner join ( select max(Total) Total, Name from sometable group by Name ) as max on max.Name = sometable.Name and max.Total = sometable.Total 

你可以尝试类似的东西

 SELECT s.* FROM sometable s INNER JOIN ( SELECT Name, MAX(Total) MTotal FROM sometable GROUP BY Name ) sMax ON s.Name = sMax.Name AND s.Total = sMax.MTotal 

或者使用一个Exists子句,它将返回两个表中唯一存在的行

 SELECT * from sometable T where exists (select 1 from (SELECT nombre, max(total) as total FROM sometable TT GROUP by nombre) TT where T.name=TT.name and T.total=TT.total )