[英]MySQL - get sum() grouped max() of group
我有如下表結構。 每一行是一個玩過的游戲,每個人每個月可以玩很多次或不玩一次。
id | person | score | date | ------------------------------------ 1 | 32 | 444 | 2011-05 | 2 | 65 | 528 | 2011-05 | 3 | 77 | 455 | 2011-05 | 4 | 32 | 266 | 2011-06 | 5 | 77 | 100 | 2011-06 | 6 | 77 | 457 | 2011-06 | 7 | 77 | 457 | 2011-06 | 8 | 65 | 999 | 2011-07 | 9 | 32 | 222 | 2011-07 |
我試圖為每個人獲得每個月的最佳分數總和。 上面的 S 結果應該是:
person | SUM(ofbestofeachmonth) --------------------------------- 32 | 932 65 | 1527 77 | 912
我知道如何在一個月或某個范圍內獲取每個用戶的最佳分數
SELECT person, date, MAX(score) FROM tabgames WHERE MONTH(date) = 6 GROUP BY person HAVING (score>0)
因為我最終每個季度都需要 output,所以現在我每個月都在獲取最好的數據,並且在我添加的 MySQL 之外。
現在我正在閱讀有關分組最大值的信息,但仍在嘗試獲得預期的結果。 任何幫助
子查詢:
SELECT person, SUM(best)
FROM
(SELECT person, MAX(score) as best
FROM tabgames
WHERE MONTH(`date`) >= 1 AND MONTH(`date`) <= 6
GROUP BY person, MONTH(`date`)) as bests
GROUP BY person
現在子查詢按人員和 MONTH(date) 分組,因此它將為每個月返回一行。
Select t.person,Max(t.Score) from
(
Select person,Sum(Score) as Score,Month('Date') as [Month] From tabgames
WHERE MONTH(`date`) >= 1 AND MONTH(`date`) <= 6
GROUP BY PERSON,Month
) AS t
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.