Mysql拉一个计数,并按该计数分组

标签 mysql sql

很难准确解释我需要什么。我想做的是统计本月前 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/

相关文章:

php - sitemap.xml 是用页面加载还是仅由机器人加载?

php - 如何将用户喜欢的页面数据存储到Mysql数据库中

java - Wildfly MySQL JSF 未连接

sql - 如何检查字符串是否为空?

php - 获取错误外键违规

PHP MySQL JSON 查询

sql - SQL 命令需要一个名为 "@SessionID"的参数,该参数在参数映射中找不到

php - 如何汇总查询中的结果

mysql - 如何使用循环系统生成随机匹配?

sql - 如何在SQL Server中使用选择查询创建表?