![](/img/trans.png)
[英]SELECT MAX from one column with SUM and GROUP BY for another, without subqueries
[英]Select Max() of SUM() for a Group
使用正确、明确、标准的JOIN
语法。 逗号在20多年前被取代。
然后,您需要窗口函数:
SELECT tp.*
FROM (SELECT t.tname, p.pname, SUM(m.Goals) as goals,
RANK() OVER (PARTITION BY t.tname ORDER BY SUM(m.Goals) DESC) as seqnum
FROM matches m JOIN
team t
ON t.TID = p.TID JOIN
player p
ON p.PNB = m.PNB
GROUP BY p.pname, t.tname
) tp
WHERE seqnum = 1
ORDER BY goals DESC;
这将返回具有最高值的所有玩家。 如果您只需要一行,请使用ROW_NUMBER()
而不是RANK()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.