SQL如何返回最新日期

Posted

技术标签:

【中文标题】SQL如何返回最新日期【英文标题】:SQL how to return the latest date 【发布时间】:2015-12-08 19:18:15 【问题描述】:

在下面的代码中,我得到了 col0 的多行。

col0 不是唯一的,例如 - col0 可能有四行值为 5,两行值为 7,等等。

我只想为 col0 中的每个值返回一行。 假设 numToDate 是一个不言自明的 UDF(对 ISO),我想为 col0 中的每个值返回一行,其中 col3 是最近的日期。

SELECT col0, col1, numToDate(col2), numToDate(col3)
FROM myTable
where col1 = 'someValue';

【问题讨论】:

【参考方案1】:

你可以使用row_number():

select col0, col1, numToDate(col2), numToDate(col3)
from (select t.*,
             row_number() over (partition by col0 order by numToDate(col3) desc) as seqnum
      from mytable t
     ) t
where seqnum = 1;

【讨论】:

谢谢。这样可行。这段代码对于时间戳是否同样有效? @TripWire 。 . .我不明白你的问题。您可以为order by 使用时间戳列。

以上是关于SQL如何返回最新日期的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询返回列更改时的最新日期

SQL 难题,如何选择零件的最新日期,但每个零件只有 1 行(唯一)

返回从最新日期算起的最后 365 内的值 ORACLE SQL

在 SQL 查询中选择最新或最近的日期

SQL - 如何获取创建的同一日期的最新数据

SQL语句 如何取得指定月份的最后一天的日期