在 postgres 中恢复上面的值
recover the value above in postgres
我想通过名称恢复上面的值。
参见table。
我希望得到类似于上一栏中的结果 number_week。
谢谢
像这样的东西应该可以工作:
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;
这利用了 Lag()
Window 函数。 "Window" 是一组可以选择性排序的记录。在这里,我们按 Name
(所以两个 groups/windows)对记录进行分组,并按 week_number
对它们进行排序。然后使用 Lag()
我们 select 先前记录的 week_number(在 window 中)。 Lag()
可以取默认值,所以我们指定默认为当前记录的week_number
.
我想通过名称恢复上面的值。
参见table。
我希望得到类似于上一栏中的结果 number_week。
谢谢
像这样的东西应该可以工作:
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;
这利用了 Lag()
Window 函数。 "Window" 是一组可以选择性排序的记录。在这里,我们按 Name
(所以两个 groups/windows)对记录进行分组,并按 week_number
对它们进行排序。然后使用 Lag()
我们 select 先前记录的 week_number(在 window 中)。 Lag()
可以取默认值,所以我们指定默认为当前记录的week_number
.