SQL:查找每个组的最大logging数
可能重复:
检索每个组中的最后一条logging
我有一个表,它有三个字段和数据。
名称,顶部,总计 猫,1,10 狗,2,7 猫,3,20 马,4,4 猫,5,10 狗,6,9
我想要为每个Name
selectTotal
值最高的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 )