簡體   English   中英

在具有分組結果集的MySQL查詢的一列中獲取具有最大值的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM