我在表中有30条记录,每个记录的标题相同,但Ids和日期不同。按日期查询最近如何返回?
表格如下所示:
Id - Title - Date
-----------------
1 - africa - 2012-11-27
2 - africa - 2012-11-26
3 - africa - 2012-11-25我需要一个查询,返回Id为3的记录,这是按日期计算的最新记录。到目前为止,我使用GROUP BY只返回Id为1的记录,我该怎么做呢?
发布于 2012-11-26 07:11:57
您希望获得第一条记录,但这不是最近的记录。子查询背后的思想是,它获取每个标题的第一个日期,并根据自身连接它,前提是它与标题和日期相匹配。
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT title, MIN(DATE) minDate
FROM tableName
GROUP BY title
) b ON a.title = b.title AND
a.date = b.maxDate发布于 2012-11-26 07:11:58
你想要groupwise maximum
SELECT * FROM my_table NATURAL JOIN (
SELECT Title, MAX(Date) Date
FROM my_table
GROUP BY Title
) t请在sqlfiddle上查看。
如果您使用具有最高id的Date而不是具有最新you的you来定义“最新”
SELECT * FROM my_table NATURAL JOIN (
SELECT Title, MAX(id) id
FROM my_table
GROUP BY Title
) t请在sqlfiddle上查看。
https://stackoverflow.com/questions/13556557
复制相似问题