MySQL 查找每月的最大日期

标签 mysql sql datetime group-by

我有一张 table :

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

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

我尝试:

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

也尝试过 MAX() 但没有成功:(

我想在我的 while 行中得到这个结果:

 date        number
 2018-11-30  7
 2018-10-28  1
 2018-09-05  9

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

谢谢!

最佳答案

计算每个年月对的最大日期并与其连接:

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

关于MySQL 查找每月的最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53375455/

相关文章:

sql - 如何动态地将列名传递给查询?

sql - Oracle EXISTS 子句与 ROWNUM = 1

c# - sqlite 数据库中的 EntityFramework 核心格式 DateTime

python - 在Python中将datetime.date转换为UTC时间戳

php - 在特定结果中设置行mysql php

java - 如何让radiobutton改变表格数据

php - 如何从表格中的每个不同类别中选择三行?

c# - TimeSpan 和 DateTime 的格式化字符串之间的不同行为

mysql - 快速用大量行填充 MySQL

javascript - php 中的 header() 函数