示例:
专栏:
id, date(mysql date), other fields....
行:
1, 2011-01-11
2, 2011-31-10
3, 2011-30-10
4, 2011-25-09
5, 2011-25-09
6, 2011-25-09
7, 2011-21-09
Mysql select语句选择给定行中每个月的最后日期...不仅仅是唯一的...如果在一个月中最后一个日期有多于1行,则需要检索该最后日期的所有行。 / p>
考虑到上面的例子,select语句应该给出以下结果集
1, 2011-01-11
2, 2011-31-10
4, 2011-25-09
5, 2011-25-09
6, 2011-25-09
答案 0 :(得分:0)
您的规格存在冲突。尽管如此,以下查询将检索一个月中具有最高日期的所有行。
SELECT * FROM your_table WHERE date =
(SELECT MAX(date) FROM your_table
GROUP BY DATE_FORMAT('%Y-%m'), date_column))
答案 1 :(得分:0)
这将为您提供正确的行:
SELECT *
FROM your_table
WHERE date_col IN (
SELECT MAX(date_col)
FROM your_table
GROUP BY MONTH(date_col)
)