1create table t1 (
2  pk int primary key,
3  a int,
4  b int,
5  c real
6);
7
8
9insert into t1 values
10(101 , 0, 10, 1.1),
11(102 , 0, 10, 2.1),
12(103 , 1, 10, 3.1),
13(104 , 1, 10, 4.1),
14(108 , 2, 10, 5.1),
15(105 , 2, 20, 6.1),
16(106 , 2, 20, 7.1),
17(107 , 2, 20, 8.15),
18(109 , 4, 20, 9.15),
19(110 , 4, 20, 10.15),
20(111 , 5, NULL, 11.15),
21(112 , 5, 1, 12.25),
22(113 , 5, NULL, 13.35),
23(114 , 5, NULL, 14.50),
24(115 , 5, NULL, 15.65),
25(116 , 6, 1, NULL),
26(117 , 6, 1, 10),
27(118 , 6, 1, 1.1),
28(119 , 6, 1, NULL),
29(120 , 6, 1, NULL),
30(121 , 6, 1, NULL),
31(122 , 6, 1, 2.2),
32(123 , 6, 1, 20.1),
33(124 , 6, 1, -10.4),
34(125 , 6, 1, NULL),
35(126 , 6, 1, NULL),
36(127 , 6, 1, NULL);
37
38
39--sorted_result
40select pk, a, b, avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
41from t1;
42
43--sorted_result
44select pk, a, c, avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
45from t1;
46
47drop table t1;
48