请考虑如下表:
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;