【发布时间】:2023-03-16 23:57:01
【问题描述】:
我正在尝试获取基于动态滞后函数的值,但我不会得到。 我有一个看起来像这样的表,我想要的是来自序列号的产品的值,它比我当前的序列号高 1
+--------+---------+--------+------------------------+----------+
| Client | Product | Ser_No | Product Ser_No+1 I get | Expected |
+--------+---------+--------+------------------------+----------+
| 1 | A | 1 | B | B |
+--------+---------+--------+------------------------+----------+
| 1 | B | 2 | C | C |
+--------+---------+--------+------------------------+----------+
| 1 | C | 3 | D | F |
+--------+---------+--------+------------------------+----------+
| 1 | D | 3 | E | F |
+--------+---------+--------+------------------------+----------+
| 1 | E | 3 | F | F |
+--------+---------+--------+------------------------+----------+
| 1 | F | 4 | null | null |
+--------+---------+--------+------------------------+----------+
| 2 | D | 1 | E | E |
+--------+---------+--------+------------------------+----------+
| 2 | E | 2 | F | G |
+--------+---------+--------+------------------------+----------+
| 2 | F | 2 | G | G |
+--------+---------+--------+------------------------+----------+
| 2 | G | 3 | H | H |
+--------+---------+--------+------------------------+----------+
| 2 | H | 4 | I | I |
+--------+---------+--------+------------------------+----------+
| 2 | I | 5 | null | null |
+--------+---------+--------+------------------------+----------+
我唯一能想到的是 Lag(product, 1),但这并不是我现在想要的。有什么想法吗?
这就是我现在所做的:
LEAD(Product, 1) OVER(PARTITION BY Cliënt ORDER BY Ser_No ASC)
但问题是第 3、4 和 8 行。这是我需要的产品代码不是来自下一行,而是来自下一个 Ser_No
【问题讨论】:
-
您的
over()子句部分在您的问题中可疑地缺失。应该是lag(product,1) over (partition by product order by ser_no asc)。那是你做的吗? -
我将问题编辑得更具体