![](/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.