pk nth_value(pk, 1) over (order by pk) nth_value(pk, 2) over (order by pk) nth_value(pk, 0) over (order by pk) nth_value(pk, -1) over (order by pk) nth_value(pk, -2) over (order by pk)
1 1 NULL NULL NULL NULL
2 1 2 NULL NULL NULL
3 1 2 NULL NULL NULL
4 1 2 NULL NULL NULL
5 1 2 NULL NULL NULL
6 1 2 NULL NULL NULL
7 1 2 NULL NULL NULL
8 1 2 NULL NULL NULL
9 1 2 NULL NULL NULL
10 1 2 NULL NULL NULL
11 1 2 NULL NULL NULL
select pk,
nth_value(pk, pk) over (order by pk),
nth_value(pk / 0.1, pk) over (order by pk)
from t1
order by pk asc;
pk nth_value(pk, pk) over (order by pk) nth_value(pk / 0.1, pk) over (order by pk)
1 1 10.0000
2 2 20.0000
3 3 30.0000
4 4 40.0000
5 5 50.0000
6 6 60.0000
7 7 70.0000
8 8 80.0000
9 9 90.0000
10 10 100.0000
11 11 110.0000
select pk,
a,
nth_value(pk, pk) over (partition by a order by pk),
nth_value(pk, a + 1) over (partition by a order by pk)
from t1
order by pk asc;
pk a nth_value(pk, pk) over (partition by a order by pk) nth_value(pk, a + 1) over (partition by a order by pk)