【问题标题】:Netezza add new field for first record value of the day in SQLNetezza 在 SQL 中为当天的第一条记录值添加新字段
【发布时间】:2020-07-14 05:19:57
【问题描述】:

我正在尝试为位置和重量添加当天的第一个值的新列。

例如原始数据格式为:

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

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

【问题讨论】:

    标签: sql netezza


    【解决方案1】:

    你可以使用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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多