我有一个看起来像这样的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 |
答案 0 :(得分:0)
试试这个:
SELECT count(gameID) as c, `gameDATE`
FROM `SKGV2_games`
WHERE
gameROUND =2 AND leagueID =185
GROUP BY `gameDATE`
ORDER BY c ASC
LIMIT 1
更新
这是关于如何整理数据的建议。因为像你这样的表中会有很多数据,所以最好有一个带有游戏和每天计数的并行表,并且在这个日志表中的每个条目都可以增加第二个表的计数。稍后当您想要构建统计数据等时,它会更有效。
答案 1 :(得分:0)
@DanielSetréus引导我进入'正确'的查询。新查询是:
SELECT `gameDATE`
FROM `SKGV2_games`
WHERE gameROUND =2
AND leagueID =185
GROUP BY `gameDATE`
ORDER BY COUNT( gameID ) DESC
LIMIT 1
它只给了我日期(我实际上不需要具有相同日期的项目数)。