【问题标题】:Sql group by and order by first date enteredSql group by 和 order by 输入的第一个日期
【发布时间】:2015-08-23 08:01:00
【问题描述】:

我想从日期时间列中获取第一个日期时间。结果总是相反。使用下面的查询,输出最新记录。我想要最新记录的相反输出。我怎样才能达到预期的效果?

name     datetime
John     August 23, 2015 03:50:01
John     August 23, 2015 03:50:14
Jane     August 23, 2015 04:51:11
Jane     August 23, 2015 05:00:11

想要的结果应该是

name  datetime
John  August 23, 2015 03:50:01
Jane  August 23, 2015 04:51:11

我正在使用这个查询

SELECT * FROM person GROUP BY name

【问题讨论】:

  • 或许可以进行一些基础研究
  • 哪个数据库:MySQL 还是 Oracle RDBMS?是的,Oracle Corporation 自收购 Sun 以来就拥有 MySQL,但 [oracle] 标签是为数据库产品而非公司保留的。

标签: mysql sql datetime select group-by


【解决方案1】:

这是一种方法:

select p.*
from person p
where p.datetime = (select max(p2.datetime) from person p2 where p2.name = p.name);

注意:如果两行具有完全相同的datetime 值,您将得到两者。

【讨论】:

    【解决方案2】:

    您可以通过添加limit 子句以升序排列order by 该列:

    SELECT   *
    FROM     person
    ORDER BY `datetime` ASC
    LIMIT    1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-31
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      相关资源
      最近更新 更多