恢复postgres中的上述值

时间:2018-06-28 17:11:51

标签: sql postgresql data-partitioning

我想按名称恢复上面的值。

请参阅表格。

enter image description here

我希望在上一个number_week之前的列中得到类似的结果。

谢谢

1 个答案:

答案 0 :(得分:0)

类似的事情应该起作用:

SELECT number_week,
  name,
  LAG(number_week, 1, number_week) OVER (PARTITION BY name ORDER BY number_week) as before_last_number_week
FROM t1;

sqlfiddle version

这利用了Lag()窗口函数。 “窗口”是一组记录,可以有选择地排序。在这里,我们按Name对记录进行分组(所以有两个组/窗口),然后按week_number对记录进行排序。然后使用Lag()选择先前记录的week_number(在该窗口中)。 Lag()可以采用默认值,因此我们指定默认值为当前记录的week_number