重复数据删除并保留最近时间戳的记录

时间:2014-06-28 13:45:10

标签: sql sas

我正在使用包含500多列的大型数据集。数据集包含客户ID字段和时间戳字段。我想查询数据并最终得到一个表,每个客户ID字段只有一行,其中保留的行是具有最新时间戳的行。如果有所不同,查询将在Netezza服务器上运行。看起来我可以通过子查询来做到这一点,但我似乎无法获得有效的语法。

1 个答案:

答案 0 :(得分:4)

以下是解决此问题的典型方法:

select t.*
from table t
where not exists (select 1
                  from table t2
                  where t2.customerid = t.customerid and
                        t2.timestamp > t.timestamp
                 );

这个问题重新解释为:"从表中获取所有行,其中没有具有相同客户ID和更大时间戳的行。"