根据时间检索最近的日期

时间:2013-07-31 16:16:48

标签: sql date timestamp

EX:

  ID       Date(with time)          Price
  ----        -------                ------ 
   A          23-Aug-12 (09:25pm)      10(cosider this was the latest on this date)
   A          25-May-10                20
   A          23-Aug-12 (8:20pm)       30
   A          23-Aug-12 (7:00pm)       35
   B          03-Apr-09                45
   B          05-Dec-10                60

我想检索ID,日期,价格,如果两个相同的日期,如果der是多个价格,那么我必须根据所包含的时间戳选择最新的日期更新日期。

预期产出:

              A,23-Aug,12,10
              A,25-May-10,20
              B,03-Apr-09,45
              B,05-Dec-10,60

2 个答案:

答案 0 :(得分:0)

大多数SQL版本都支持row_number函数。从日期时间中提取日期因数据库而异。这是一种做你想做的事情的方法:

select id, datetime, price
from (select t.*,
             row_number() over (partition by id, cast(datetime as date) order by datetime desc
                               ) as seqnum
      from t
     ) t
where seqnum = 1;

这给出了一般结构。确切的语法因数据库而异。

答案 1 :(得分:0)

尝试一下这个: -

SELECT
    ID,

    MAX(date)
FROM
    Some_Unnamed_Table
GROUP BY
    ID
ORDER BY
    ID