DB2 SQL:组内,将第1列最大时第2列的值赋给每一行

DB2 SQL: within group, assign value of column 2 when column 1 is at maximum, to each row

我有这样的数据,对于 one 组,即有更多这样的数据相互堆叠:

现在,在每个组中,我想创建一个名为 "relationship" 的新列,我在其中取 factor 的值(当 year=2018(最大值) ), 并取每一行的每个因子值除以 2018 年的因子值。 我可以使用 CLT 表达式以两步方式完成此操作,这很好。

编辑:我想要的是这样的:

select 数据。* ,first(factor) over(partition by group order by group, year desc)

select 数据。* ,因数超过(其中最大(年))

我理解你的问题的方式与你提供的关系栏的结果不同。 这是一个例子 - 也许你必须调整计算(以防我误解你)

SELECT group
     , year
     , age
     , factor
     , factor / first_value(factor) OVER(PARTITION BY group  ORDER BY year desc) as relationship
  FROM test_r