MySQL - 得到sum()分组max()的组

car*_*ret 2 mysql group-by groupwise

我有如下表格结构.每一行都是一个玩过的游戏,每个人每个月都可以玩很多次或者不玩次.

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 |

我试图为每个人获得每个月最佳分数的总和.上面的结果应该是:

 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)

因为我需要在每个季度的最后一个季度输出,现在我每个月都在获取最好的数据,而且我正在添加MySQL.

现在我正在阅读有关群组最大化的内容,并且仍然试图获得令人满意的结果.任何帮助

jak*_*bka 8

子查询:

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
Run Code Online (Sandbox Code Playgroud)

现在子查询按人和MONTH(日期)分组,因此它将为每个月返回一行.