netezza为sql中当天的第一个记录值添加新字段

djp7away  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(346)

我正在尝试为位置和权重添加新的列,其中包含当天的第一个值。
例如,原始数据格式为:

id         dttm         location     weight
--------------------------------------------
1     1/1/20 11:10:00     A           40
1     1/1/20 19:07:00     B           41.1
2     1/1/20 08:01:00     B           73.2
2     1/1/20 21:00:00     B           73.2
2     1/2/20 10:03:00     C           74

我希望每个id只有一天的记录,例如:

id         dttm         location     weight
--------------------------------------------
1     1/1/20 11:10:00     A           40
2     1/1/20 08:01:00     B           73.2
2     1/2/20 10:03:00     C           74

我的数据集中还有其他列,我正在使用位置和权重来创建这些列,所以我不认为我可以只筛选当天的“第一个”记录。。是否可以编写查询来识别这两列当天的第一条记录,并用这些值创建新列?

juud5qan

juud5qan1#

你可以用 row_number() :

select t.*
from (select t.*,
             row_number() over (partition by id, ddtm::date order by dttm) as seqnum
      from t
     ) t
where seqnum = 1;

相关问题