选择具有datediff 1和最新时间​​戳的行

时间:2019-03-17 20:03:49

标签: sql proc-sql sas-dis

EXAMPLE DATA.WANT TO KEEP LAST ROW. 抱歉,可能有一个非常简单的解决方案,但是我是SQL和SAS数据集成工作室的新手。该代码在SAS语言的“ proc SQL”中。

我正在尝试在SAS DI中创建作业,但无法删除错误的行。这是数据集。没有主键,但是日期应该是唯一的。因此,每个日期应该只有一行。

我想保留datediff为1的最新时间戳的行。在此示例中,这意味着示例数据中的最后一行。

我没有成功尝试过此代码:

proc sql;
create table TEST as
select datetime1, datetime2, column1, column2, column3 from table1 t1
where datetime1=(select max(datetime1) from table1 t2 where t1.datetime1=t2.datetime1)
order by datetime1;
quit;

1 个答案:

答案 0 :(得分:0)

如果您希望每个日期一行,那么我认为这是逻辑:

proc sql;
create table TEST as
    select datetime1, datetime2, column1, column2, column3
    from table1 t1
    where datetime1 = (select max(tt1.datetime1)
                       from table1 tt1
                       where datepart(tt1.datetime1) = datepart(t1.datetime1)
                      )
    order by datetime1;
quit;