[英]Get row with max value in one column for MySQL query with grouped resultset
我有一个看起来像这样的mysql表(摘录):
| gameID | gameDATE |
+--------+---------------------+
| 12757 | 2015-08-15 13:30:00 |
| 12758 | 2015-08-16 11:00:00 |
| 12759 | 2015-08-16 13:00:00 |
| 12760 | 2015-08-16 13:00:00 |
| 12761 | 2015-08-16 13:00:00 |
| 12762 | 2015-08-16 13:00:00 |
| 12763 | 2015-08-16 13:00:00 |
| 12764 | 2015-08-16 13:00:00 |
| 13335 | 2015-08-16 13:00:00 |
现在,我想找到其中大多数游戏都在玩的gameDATE
。 我似乎找不到正确的查询。
这就是我总是要结束的地方。
SELECT count(gameID) as c, `gameDATE`
FROM `SKGV2_games`
WHERE gameROUND =2 AND leagueID =185 GROUP BY `gameDATE` ASC
我只想要一行结果=> c
编号最高的那一行,而不是所有行。
| c | gameDATE |
+---+----------------------+
| 1 | 2015-08-15 13:30:00 |
| 1 | 2015-08-16 11:00:00 |
| 7 | 2015-08-16 13:00:00 |
尝试这个:
SELECT count(gameID) as c, `gameDATE`
FROM `SKGV2_games`
WHERE
gameROUND =2 AND leagueID =185
GROUP BY `gameDATE`
ORDER BY c ASC
LIMIT 1
更新
这是有关如何组织数据的建议。 由于您会在像您这样的表中拥有大量数据,因此最好有一个包含游戏和每天计数的并行表,并且在此日志表中的每个条目都可以增加第二个表的计数。 以后要构建统计信息等时,效率会更高。
@DanielSetréus将我引向“正确”查询。 新查询为:
SELECT `gameDATE`
FROM `SKGV2_games`
WHERE gameROUND =2
AND leagueID =185
GROUP BY `gameDATE`
ORDER BY COUNT( gameID ) DESC
LIMIT 1
这只是给我日期(我实际上不需要计数具有相同日期的项目)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.