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.
现在我正在阅读有关群组最大化的内容,并且仍然试图获得令人满意的结果.任何帮助
子查询:
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(日期)分组,因此它将为每个月返回一行.
| 归档时间: |
|
| 查看次数: |
6851 次 |
| 最近记录: |