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