MySQL找到每月的最大日期

时间:2018-11-19 13:15:06

标签: mysql sql datetime group-by

我有一张桌子:

?:

如何对每个月的最后一天的值进行排序?

我尝试:

date         number
2018-11-01   5
2018-11-30   7
2018-10-05   3
2018-10-28   1
2018-09-01   8
2018-09-05   9

并尝试使用MAX()但没有成功:(

我希望在我的while行中得到以下结果:

$mysqli->query("
SELECT * 
  FROM stats 
 GROUP 
    BY YEAR(date)
     , MONTH(date) desc 
 ORDER 
    BY date desc");

所以只需保留每个月最后一天的值(数字)。

谢谢!

1 个答案:

答案 0 :(得分:2)

计算每个年月对的最大日期并加入:

SELECT date, number
FROM stats
INNER JOIN (
    SELECT MAX(date) AS maxdate
    FROM stats
    GROUP BY YEAR(date), MONTH(date)
) x ON stats.date = maxdate