2015-05-20 22 views
0

MySQL表:統計
如何選擇MySQL中的相應列按日期分組的一個MAX日期

columns: 
     date   | stats 
05-05-2015 22:25:00  | 78 
05-05-2015 09:25:00  | 21 
05-05-2015 05:25:00  | 25 
05-04-2015 09:25:00  | 29 
05-04-2015 05:25:00  | 15 

SQL查詢:

SELECT MAX(date) as date, stats FROM stats GROUP BY date(date) ORDER BY date DESC 

當我這樣做,我每個日期選擇一行(按日期分組,不管時間),並選擇與MAX最大的日期,但不會選擇相應的列。例如, 作爲date返回05-05-2015 22:25:00,作爲stats返回25。應該選擇78作爲stats。我已經完成了我的研究,似乎解決方案已經存在,但我不熟悉JOIN或其他不太常見的mysql函數來實現這一點,並且我很難理解其他示例/解決方案,所以我決定發佈我自己的具體情況。

+1

可能的重複[我如何選擇具有MAX(列值)的行,由SQL中的另一列DISTINCT?](http://stackoverflow.com/questions/612231/how-can-i-select-rows-與-maxcolumn - 值明顯逐另一列式-SQL) – rghome

回答

1

SO中的每一天都會問這個問題。有時候,它也被正確地回答了。無論如何,純粹主義者會不喜歡它,但這裏有一個選項:

Select x.* from stats x join (SELECT MAX(date) max_date FROM stats GROUP BY date(date)) y on y.max_date = x.date; 

顯然,這個工作日期需要使用datetime數據類型存儲。

相關問題