很难准确解释我需要什么。我想做的是统计本月前 5 名的获奖者。该表的结构方式(可以更改)是它记录了每场比赛、玩家的 ID、获胜者和日期。
表结构如下:id、p1id、p2id、dateAdded、status、winner。
这是我的观点:
SELECT COUNT(winner) AS totalCount FROM gameEnders
WHERE
status=0 AND
(YEAR(dateAdded) = YEAR(CURDATE()) AND MONTH(dateAdded) = MONTH(CURDATE()))
GROUP BY winner
ORDER BY totalCount DESC LIMIT 5
当我这样做的时候我就知道这是行不通的,但这是我最好的猜测。我要显示的是 3,然后是 1(稍后将添加带有连接的玩家名称)。 winner id:2 有 3 个条目,winner id:1 有 1 个条目。显示的是2,这是编号最大的获胜者的id。
尝试尽可能清楚地说明我正在尝试做的事情。如果可能的话,或者如果有人需要更多信息,请告诉我。
最佳答案
只需将 winner
添加到 select 语句中,您就应该有一个本月获胜者的降序列表...
Select winner,
Count(*) AS totalCount
From gameEnders
Where status=0
And Year(dateAdded) = Year(CurDate())
And Month(dateAdded) = Month(CurDate())
Group By winner
Order By Count(*) DESC
Limit 5
关于Mysql拉一个计数,并按该计数分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25251376/