我有如下表结构。每行都是一场游戏,每个人每个月可以玩很多次或不玩。
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 之外的结果。
现在我正在阅读有关分组最大值的内容,并且仍在尝试获得预期结果。任何帮助
子查询:
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
现在子查询按人和月份(日期)分组,因此它将返回每个月的一行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)