我有一张桌子,可以存储每位球员的前三名。示例数据是:
id player_id score score_date
------------------------------------------------------
1 100 1100 2015-10-10
2 101 1750 2015-10-07
3 100 3200 2015-10-10
4 102 4100 2015-10-10
5 101 3000 2015-10-01
如何编写一个查询,以获取特定日期每位玩家的最高得分记录?假设我的日期是2015-10-10
,我想要的结果是:
player_id score date
------------------------------------------------------
100 3200 2015-10-10
102 4100 2015-10-10
如果您注意到,player 100
在该日期有两个分数。我试过了:
select * from player
where date(score_date) = date('2015-10-10')
group by player_id
但它给了我1100
作为player 100
的分数,但正确的值为3200
。我还尝试将ORDER by score DESC limit 1
添加到上述查询的结尾,但结果却很奇怪......
我希望SO中的MySQL大师会怜悯我并帮助......
答案 0 :(得分:2)
select player_id, MAX(score), score_date from player
where date(score_date) = date('2015-10-10')
group by player_id