簡體   English   中英

SQL-不同金額的最大值

[英]SQL - Max value of different sums

所以我仍然在足球經理檔案上。 以下是得出每個賽季總得分的查詢:

SELECT
p.username,
SUM(CASE WHEN m.season_id=4 THEN points END) as 'season14/15',
SUM(CASE WHEN m.season_id=5 THEN points END) as 'season15/16',
SUM(m.points) AS total_points 
FROM 
players p
INNER JOIN 
matchdays m ON p.userid = m.userid
GROUP BY p.userid
ORDER BY total_points DESC`

結果是:

+----------+-------------+-------------+--------------+
| username | season14/15 | season15/16 | total_points |
+----------+-------------+-------------+--------------+
| USER 1   | 1111        | 111         | 1222         |
| USER 2   | 999         | 222         | 1221         |
| USER 3   | 888         | 333         | 1221         |
| USER 4   | 777         | 444         | 1221         |
+----------+-------------+-------------+--------------+ 

我想做的是顯示具有最大值的字段。

在這種情況下:第14/15季中的用戶1。

最終,網站上的輸出應類似於:

“一個賽季的歷史最高得分是USER 1,在第14/15賽季中獲得1111分”。

我已經嘗試了幾項諸如GREATEST以及子查詢的方法。

到目前為止沒有成功。

您可以簡單地按用戶和季節進行分組,對點求和,然后對合計點按降序排序,然后獲取第一個結果(例如,使用SQL Server中的TOP子句)

SELECT TOP 1 p.userid, m.season, sum(points) as points
FROM p INNER JOIN m ON p.userid = m.userid
GROUP BY p.userid, m.season
ORDER BY points desc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM