簡體   English   中英

如何為DATE分組的MAX DATE在mysql中選擇相應的列

[英]How to select a corresponding column in mysql for a MAX DATE grouped by DATE

mysql表:統計

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選擇最大的日期,但不會選擇相應的列。 例如,它返回05-05-2015 22:25:00作為date ,並返回25作為stats 應該選擇78作為stats 我已經進行了研究,似乎可以找到解決方案,但是我不熟悉JOIN或其他不太常見的mysql函數來實現此目的,而且我很難理解其他示例/解決方案,因此我決定發布我自己的特定情況。

在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數據類型存儲日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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