首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL分组中按日期返回第一条记录?

如何在MySQL分组中按日期返回第一条记录?
EN

Stack Overflow用户
提问于 2012-11-26 07:09:36
回答 2查看 6.2K关注 0票数 1

我在表中有30条记录,每个记录的标题相同,但Ids和日期不同。按日期查询最近如何返回?

表格如下所示:

代码语言:javascript
复制
Id - Title - Date
-----------------
1 - africa - 2012-11-27
2 - africa - 2012-11-26
3 - africa - 2012-11-25

我需要一个查询,返回Id为3的记录,这是按日期计算的最新记录。到目前为止,我使用GROUP BY只返回Id为1的记录,我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-26 07:11:57

您希望获得第一条记录,但这不是最近的记录。子查询背后的思想是,它获取每个标题的第一个日期,并根据自身连接它,前提是它与标题和日期相匹配。

代码语言:javascript
复制
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
票数 6
EN

Stack Overflow用户

发布于 2012-11-26 07:11:58

你想要groupwise maximum

代码语言:javascript
复制
SELECT * FROM my_table NATURAL JOIN (
  SELECT   Title, MAX(Date) Date
  FROM     my_table
  GROUP BY Title
) t

请在sqlfiddle上查看。

如果您使用具有最高idDate而不是具有最新you的you来定义“最新”

代码语言:javascript
复制
SELECT * FROM my_table NATURAL JOIN (
  SELECT   Title, MAX(id) id
  FROM     my_table
  GROUP BY Title
) t

请在sqlfiddle上查看。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13556557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档