使用group by子句进行SQL查询

时间:2014-03-26 05:41:30

标签: mysql greatest-n-per-group

我已经获取了以下数据,现在我想要通过pid获取Max(Sum1)组的记录,但也提到该最大值的cname

pid   cname   sum1

23     Abc     946

23     Xyz     920

18     Lmn     900

18     Pqr     1500

现在我想要As

23     Abc   946

18     Pqr   1500   

2 个答案:

答案 0 :(得分:4)

您可以使用同一表格中的sum1的最大值进行自联接来实现此目的

select t1.pid, t1.cname, t1.sum1
from Table1 t1
join (SELECT MAX(sum1) sum1,pid from Table1 group by pid) t2
on(t1.pid=t2.pid and t1.sum1 =t2.sum1)

Fiddle

答案 1 :(得分:2)

使用此:

select pid, cname, sum1
from Table1
where (pid,sum1) in (select pid,max(sum1) from table1 group by pid)

fiddle