如何按子句顺序对分区列执行差异?



考虑如下表:

col1  col2  col3
1000  RRR   100000
2000  RRR   400000
3000  RRR   300000
4000  YYY   200000
5000  YYY   400000
6000  RRR   400000
6000  ZZZ   500000

我想要的输出:

1000  RRR  0
2000  RRR  300000
3000  RRR  100000
6000  RRR  400000
....

我需要在col2上执行分区,按col3排序,然后在行上找到差异。

您可以使用以下代码片段作为查询的基础:

SELECT c1, c2,
c3 - nvl(lag(c3) OVER (PARTITION BY c2 ORDER BY c1), c3) as diff
FROM t;

最新更新