xref: /sqlite-3.40.0/test/window2.test (revision d8d2fb92)
1b6e9f7a4Sdan# 2018 May 19
2b6e9f7a4Sdan#
3b6e9f7a4Sdan# The author disclaims copyright to this source code.  In place of
4b6e9f7a4Sdan# a legal notice, here is a blessing:
5b6e9f7a4Sdan#
6b6e9f7a4Sdan#    May you do good and not evil.
7b6e9f7a4Sdan#    May you find forgiveness for yourself and forgive others.
8b6e9f7a4Sdan#    May you share freely, never taking more than you give.
9b6e9f7a4Sdan#
10b6e9f7a4Sdan#***********************************************************************
11b6e9f7a4Sdan# This file implements regression tests for SQLite library.
12b6e9f7a4Sdan#
13b6e9f7a4Sdan
14b6e9f7a4Sdan####################################################
15b6e9f7a4Sdan# DO NOT EDIT! THIS FILE IS AUTOMATICALLY GENERATED!
16b6e9f7a4Sdan####################################################
17b6e9f7a4Sdan
18b6e9f7a4Sdanset testdir [file dirname $argv0]
19b6e9f7a4Sdansource $testdir/tester.tcl
20b6e9f7a4Sdanset testprefix window2
21b6e9f7a4Sdan
2267a9b8edSdanifcapable !windowfunc { finish_test ; return }
23b6e9f7a4Sdando_execsql_test 1.0 {
24b6e9f7a4Sdan  DROP TABLE IF EXISTS t1;
25b6e9f7a4Sdan  CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c TEXT, d INTEGER);
26b6e9f7a4Sdan  INSERT INTO t1 VALUES(1, 'odd',  'one',   1);
27b6e9f7a4Sdan  INSERT INTO t1 VALUES(2, 'even', 'two',   2);
28b6e9f7a4Sdan  INSERT INTO t1 VALUES(3, 'odd',  'three', 3);
29b6e9f7a4Sdan  INSERT INTO t1 VALUES(4, 'even', 'four',  4);
30b6e9f7a4Sdan  INSERT INTO t1 VALUES(5, 'odd',  'five',  5);
31b6e9f7a4Sdan  INSERT INTO t1 VALUES(6, 'even', 'six',   6);
32b6e9f7a4Sdan} {}
33b6e9f7a4Sdan
34b6e9f7a4Sdando_execsql_test 1.1 {
35b6e9f7a4Sdan  SELECT c, sum(d) OVER (PARTITION BY b ORDER BY c) FROM t1;
36b6e9f7a4Sdan} {four 4   six 10   two 12   five 5   one 6   three 9}
37b6e9f7a4Sdan
38b6e9f7a4Sdando_execsql_test 1.2 {
39b6e9f7a4Sdan  SELECT sum(d) OVER () FROM t1;
40b6e9f7a4Sdan} {21   21   21   21   21   21}
41b6e9f7a4Sdan
42b6e9f7a4Sdando_execsql_test 1.3 {
43b6e9f7a4Sdan  SELECT sum(d) OVER (PARTITION BY b) FROM t1;
44b6e9f7a4Sdan} {12   12   12   9   9   9}
45f9eae18bSdan
46c3a20c19Sdan#==========================================================================
47c3a20c19Sdan
48c3a20c19Sdando_execsql_test 2.1 {
49c3a20c19Sdan  SELECT a, sum(d) OVER (
50c3a20c19Sdan    ORDER BY d
51c3a20c19Sdan    ROWS BETWEEN 1000 PRECEDING AND 1 FOLLOWING
52c3a20c19Sdan  ) FROM t1
53c3a20c19Sdan} {1 3   2 6   3 10   4 15   5 21   6 21}
54c3a20c19Sdan
55c3a20c19Sdando_execsql_test 2.2 {
56c3a20c19Sdan  SELECT a, sum(d) OVER (
57c3a20c19Sdan    ORDER BY d
58c3a20c19Sdan    ROWS BETWEEN 1000 PRECEDING AND 1000 FOLLOWING
59c3a20c19Sdan  ) FROM t1
60c3a20c19Sdan} {1 21   2 21   3 21   4 21   5 21   6 21}
61c3a20c19Sdan
62c3a20c19Sdando_execsql_test 2.3 {
63c3a20c19Sdan  SELECT a, sum(d) OVER (
64c3a20c19Sdan    ORDER BY d
65c3a20c19Sdan    ROWS BETWEEN 1 PRECEDING AND 1000 FOLLOWING
66c3a20c19Sdan  ) FROM t1
67c3a20c19Sdan} {1 21   2 21   3 20   4 18   5 15   6 11}
68c3a20c19Sdan
69c3a20c19Sdando_execsql_test 2.4 {
70c3a20c19Sdan  SELECT a, sum(d) OVER (
71c3a20c19Sdan    ORDER BY d
72c3a20c19Sdan    ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
73c3a20c19Sdan  ) FROM t1
74c3a20c19Sdan} {1 3   2 6   3 9   4 12   5 15   6 11}
75c3a20c19Sdan
76c3a20c19Sdando_execsql_test 2.5 {
77c3a20c19Sdan  SELECT a, sum(d) OVER (
78c3a20c19Sdan    ORDER BY d
79c3a20c19Sdan    ROWS BETWEEN 1 PRECEDING AND 0 FOLLOWING
80c3a20c19Sdan  ) FROM t1
81c3a20c19Sdan} {1 1   2 3   3 5   4 7   5 9   6 11}
82c3a20c19Sdan
83c3a20c19Sdando_execsql_test 2.6 {
84c3a20c19Sdan  SELECT a, sum(d) OVER (
85c3a20c19Sdan    PARTITION BY b
86c3a20c19Sdan    ORDER BY d
87c3a20c19Sdan    ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
88c3a20c19Sdan  ) FROM t1
89c3a20c19Sdan} {2 6   4 12   6 10   1 4   3 9   5 8}
90c3a20c19Sdan
91c3a20c19Sdando_execsql_test 2.7 {
92c3a20c19Sdan  SELECT a, sum(d) OVER (
93c3a20c19Sdan    PARTITION BY b
94c3a20c19Sdan    ORDER BY d
95c3a20c19Sdan    ROWS BETWEEN 0 PRECEDING AND 0 FOLLOWING
96c3a20c19Sdan  ) FROM t1
97c3a20c19Sdan} {2 2   4 4   6 6   1 1   3 3   5 5}
98c3a20c19Sdan
9999652ddaSdando_execsql_test 2.8 {
10099652ddaSdan  SELECT a, sum(d) OVER (
10199652ddaSdan    ORDER BY d
10299652ddaSdan    ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING
10399652ddaSdan  ) FROM t1
10499652ddaSdan} {1 6   2 9   3 12   4 15   5 11   6 6}
10599652ddaSdan
10699652ddaSdando_execsql_test 2.9 {
10799652ddaSdan  SELECT a, sum(d) OVER (
10899652ddaSdan    ORDER BY d
10999652ddaSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND 2 FOLLOWING
11099652ddaSdan  ) FROM t1
11199652ddaSdan} {1 6   2 10   3 15   4 21   5 21   6 21}
11299652ddaSdan
11399652ddaSdando_execsql_test 2.10 {
11499652ddaSdan  SELECT a, sum(d) OVER (
11599652ddaSdan    ORDER BY d
11699652ddaSdan    ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING
11799652ddaSdan  ) FROM t1
11899652ddaSdan} {1 6   2 9   3 12   4 15   5 11   6 6}
11999652ddaSdan
12099652ddaSdando_execsql_test 2.11 {
12199652ddaSdan  SELECT a, sum(d) OVER (
12299652ddaSdan    ORDER BY d
12399652ddaSdan    ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
12499652ddaSdan  ) FROM t1
12599652ddaSdan} {1 1   2 3   3 6   4 9   5 12   6 15}
12699652ddaSdan
12799652ddaSdando_execsql_test 2.13 {
12899652ddaSdan  SELECT a, sum(d) OVER (
12999652ddaSdan    ORDER BY d
13099652ddaSdan    ROWS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING
13199652ddaSdan  ) FROM t1
13299652ddaSdan} {1 21   2 21   3 21   4 20   5 18   6 15}
13399652ddaSdan
13431f5639fSdando_execsql_test 2.14 {
13531f5639fSdan  SELECT a, sum(d) OVER (
13631f5639fSdan    ORDER BY d
13731f5639fSdan    ROWS BETWEEN 3 PRECEDING AND 1 PRECEDING
13831f5639fSdan  ) FROM t1
13931f5639fSdan} {1 {}   2 1   3 3   4 6   5 9   6 12}
14031f5639fSdan
14131f5639fSdando_execsql_test 2.15 {
14231f5639fSdan  SELECT a, sum(d) OVER (
14331f5639fSdan    PARTITION BY b
14431f5639fSdan    ORDER BY d
14531f5639fSdan    ROWS BETWEEN 1 PRECEDING AND 0 PRECEDING
14631f5639fSdan  ) FROM t1
14731f5639fSdan} {2 2   4 6   6 10   1 1   3 4   5 8}
14831f5639fSdan
14931f5639fSdando_execsql_test 2.16 {
15031f5639fSdan  SELECT a, sum(d) OVER (
15131f5639fSdan    PARTITION BY b
15231f5639fSdan    ORDER BY d
15331f5639fSdan    ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING
15431f5639fSdan  ) FROM t1
15531f5639fSdan} {2 {}   4 2   6 4   1 {}   3 1   5 3}
15631f5639fSdan
15731f5639fSdando_execsql_test 2.17 {
15831f5639fSdan  SELECT a, sum(d) OVER (
15931f5639fSdan    PARTITION BY b
16031f5639fSdan    ORDER BY d
16131f5639fSdan    ROWS BETWEEN 1 PRECEDING AND 2 PRECEDING
16231f5639fSdan  ) FROM t1
16331f5639fSdan} {2 {}   4 {}   6 {}   1 {}   3 {}   5 {}}
16431f5639fSdan
16531f5639fSdando_execsql_test 2.18 {
16631f5639fSdan  SELECT a, sum(d) OVER (
16731f5639fSdan    PARTITION BY b
16831f5639fSdan    ORDER BY d
16931f5639fSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND 2 PRECEDING
17031f5639fSdan  ) FROM t1
17131f5639fSdan} {2 {}   4 {}   6 2   1 {}   3 {}   5 1}
17231f5639fSdan
173e105dd76Sdando_execsql_test 2.19 {
174e105dd76Sdan  SELECT a, sum(d) OVER (
175e105dd76Sdan    PARTITION BY b
176e105dd76Sdan    ORDER BY d
177e105dd76Sdan    ROWS BETWEEN 1 FOLLOWING AND 3 FOLLOWING
178e105dd76Sdan  ) FROM t1
179e105dd76Sdan} {2 10   4 6   6 {}   1 8   3 5   5 {}}
180e105dd76Sdan
181e105dd76Sdando_execsql_test 2.20 {
182e105dd76Sdan  SELECT a, sum(d) OVER (
183e105dd76Sdan    ORDER BY d
184e105dd76Sdan    ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING
185e105dd76Sdan  ) FROM t1
186e105dd76Sdan} {1 5   2 7   3 9   4 11   5 6   6 {}}
187e105dd76Sdan
188e105dd76Sdando_execsql_test 2.21 {
189e105dd76Sdan  SELECT a, sum(d) OVER (
190e105dd76Sdan    ORDER BY d
191e105dd76Sdan    ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING
192e105dd76Sdan  ) FROM t1
193e105dd76Sdan} {1 20   2 18   3 15   4 11   5 6   6 {}}
194e105dd76Sdan
195e105dd76Sdando_execsql_test 2.22 {
196e105dd76Sdan  SELECT a, sum(d) OVER (
197e105dd76Sdan    PARTITION BY b
198e105dd76Sdan    ORDER BY d
199e105dd76Sdan    ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING
200e105dd76Sdan  ) FROM t1
201e105dd76Sdan} {2 10   4 6   6 {}   1 8   3 5   5 {}}
202e105dd76Sdan
20309590aaaSdando_execsql_test 2.23 {
20409590aaaSdan  SELECT a, sum(d) OVER (
20509590aaaSdan    ORDER BY d
20609590aaaSdan    ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
20709590aaaSdan  ) FROM t1
20809590aaaSdan} {1 21   2 20   3 18   4 15   5 11   6 6}
20909590aaaSdan
21009590aaaSdando_execsql_test 2.24 {
21109590aaaSdan  SELECT a, sum(d) OVER (
21209590aaaSdan    PARTITION BY a%2
21309590aaaSdan    ORDER BY d
21409590aaaSdan    ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
21509590aaaSdan  ) FROM t1
21609590aaaSdan} {2 12   4 10   6 6   1 9   3 8   5 5}
21709590aaaSdan
21809590aaaSdando_execsql_test 2.25 {
21909590aaaSdan  SELECT a, sum(d) OVER (
22009590aaaSdan    ORDER BY d
22109590aaaSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
22209590aaaSdan  ) FROM t1
22309590aaaSdan} {1 21   2 21   3 21   4 21   5 21   6 21}
22409590aaaSdan
22509590aaaSdando_execsql_test 2.26 {
22609590aaaSdan  SELECT a, sum(d) OVER (
22709590aaaSdan    PARTITION BY b
22809590aaaSdan    ORDER BY d
22909590aaaSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
23009590aaaSdan  ) FROM t1
23109590aaaSdan} {2 12   4 12   6 12   1 9   3 9   5 9}
23209590aaaSdan
23309590aaaSdando_execsql_test 2.27 {
23409590aaaSdan  SELECT a, sum(d) OVER (
23509590aaaSdan    ORDER BY d
23609590aaaSdan    ROWS BETWEEN CURRENT ROW AND CURRENT ROW
23709590aaaSdan  ) FROM t1
23809590aaaSdan} {1 1   2 2   3 3   4 4   5 5   6 6}
23909590aaaSdan
24009590aaaSdando_execsql_test 2.28 {
24109590aaaSdan  SELECT a, sum(d) OVER (
24209590aaaSdan    PARTITION BY b
24309590aaaSdan    ORDER BY d
24409590aaaSdan    ROWS BETWEEN CURRENT ROW AND CURRENT ROW
24509590aaaSdan  ) FROM t1
24609590aaaSdan} {2 2   4 4   6 6   1 1   3 3   5 5}
24709590aaaSdan
24809590aaaSdando_execsql_test 2.29 {
24909590aaaSdan  SELECT a, sum(d) OVER (
25009590aaaSdan    ORDER BY d
25109590aaaSdan    RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
25209590aaaSdan  ) FROM t1
25309590aaaSdan} {1 21   2 20   3 18   4 15   5 11   6 6}
25409590aaaSdan
25509590aaaSdando_execsql_test 2.30 {
25609590aaaSdan  SELECT a, sum(d) OVER (
25709590aaaSdan    ORDER BY b
25809590aaaSdan    RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
25909590aaaSdan  ) FROM t1
26009590aaaSdan} {2 21   4 21   6 21   1 9   3 9   5 9}
26109590aaaSdan
26279d4544dSdando_execsql_test 3.1 {
26379d4544dSdan  SELECT a, sum(d) OVER (
26479d4544dSdan    PARTITION BY b ORDER BY d
26579d4544dSdan    RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
26679d4544dSdan  ) FROM t1
26779d4544dSdan} {2 12   4 10   6 6   1 9   3 8   5 5}
26879d4544dSdan
26979d4544dSdando_execsql_test 3.2 {
27079d4544dSdan  SELECT a, sum(d) OVER (
27179d4544dSdan    ORDER BY b
27279d4544dSdan    RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
27379d4544dSdan  ) FROM t1
27479d4544dSdan} {2 21   4 21   6 21   1 9   3 9   5 9}
27579d4544dSdan
27679d4544dSdando_execsql_test 3.3 {
27779d4544dSdan  SELECT a, sum(d) OVER (
27879d4544dSdan    ORDER BY d
27979d4544dSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
28079d4544dSdan  ) FROM t1
28179d4544dSdan} {1 21   2 21   3 21   4 21   5 21   6 21}
28279d4544dSdan
28379d4544dSdando_execsql_test 3.4 {
28479d4544dSdan  SELECT a, sum(d) OVER (
28579d4544dSdan    ORDER BY d/2
28679d4544dSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
28779d4544dSdan  ) FROM t1
28879d4544dSdan} {1 1   2 3   3 6   4 10   5 15   6 21}
28979d4544dSdan
29099652ddaSdan#==========================================================================
29199652ddaSdan
29279d4544dSdando_execsql_test 4.0 {
29379d4544dSdan  DROP TABLE IF EXISTS t2;
29479d4544dSdan  CREATE TABLE t2(a INTEGER PRIMARY KEY, b INTEGER);
29579d4544dSdan  INSERT INTO t2(a, b) VALUES
29679d4544dSdan  (1,0), (2,74), (3,41), (4,74), (5,23), (6,99), (7,26), (8,33), (9,2),
29779d4544dSdan  (10,89), (11,81), (12,96), (13,59), (14,38), (15,68), (16,39), (17,62),
29879d4544dSdan  (18,91), (19,46), (20,6), (21,99), (22,97), (23,27), (24,46), (25,78),
29979d4544dSdan  (26,54), (27,97), (28,8), (29,67), (30,29), (31,93), (32,84), (33,77),
30079d4544dSdan  (34,23), (35,16), (36,16), (37,93), (38,65), (39,35), (40,47), (41,7),
30179d4544dSdan  (42,86), (43,74), (44,61), (45,91), (46,85), (47,24), (48,85), (49,43),
30279d4544dSdan  (50,59), (51,12), (52,32), (53,56), (54,3), (55,91), (56,22), (57,90),
30379d4544dSdan  (58,55), (59,15), (60,28), (61,89), (62,25), (63,47), (64,1), (65,56),
30479d4544dSdan  (66,40), (67,43), (68,56), (69,16), (70,75), (71,36), (72,89), (73,98),
30579d4544dSdan  (74,76), (75,81), (76,4), (77,94), (78,42), (79,30), (80,78), (81,33),
30679d4544dSdan  (82,29), (83,53), (84,63), (85,2), (86,87), (87,37), (88,80), (89,84),
30779d4544dSdan  (90,72), (91,41), (92,9), (93,61), (94,73), (95,95), (96,65), (97,13),
30879d4544dSdan  (98,58), (99,96), (100,98), (101,1), (102,21), (103,74), (104,65), (105,35),
30979d4544dSdan  (106,5), (107,73), (108,11), (109,51), (110,87), (111,41), (112,12), (113,8),
31079d4544dSdan  (114,20), (115,31), (116,31), (117,15), (118,95), (119,22), (120,73),
31179d4544dSdan  (121,79), (122,88), (123,34), (124,8), (125,11), (126,49), (127,34),
31279d4544dSdan  (128,90), (129,59), (130,96), (131,60), (132,55), (133,75), (134,77),
31379d4544dSdan  (135,44), (136,2), (137,7), (138,85), (139,57), (140,74), (141,29), (142,70),
31479d4544dSdan  (143,59), (144,19), (145,39), (146,26), (147,26), (148,47), (149,80),
31579d4544dSdan  (150,90), (151,36), (152,58), (153,47), (154,9), (155,72), (156,72), (157,66),
31679d4544dSdan  (158,33), (159,93), (160,75), (161,64), (162,81), (163,9), (164,23), (165,37),
31779d4544dSdan  (166,13), (167,12), (168,14), (169,62), (170,91), (171,36), (172,91),
31879d4544dSdan  (173,33), (174,15), (175,34), (176,36), (177,99), (178,3), (179,95), (180,69),
31979d4544dSdan  (181,58), (182,52), (183,30), (184,50), (185,84), (186,10), (187,84),
32079d4544dSdan  (188,33), (189,21), (190,39), (191,44), (192,58), (193,30), (194,38),
32179d4544dSdan  (195,34), (196,83), (197,27), (198,82), (199,17), (200,7);
32279d4544dSdan} {}
32379d4544dSdan
32479d4544dSdando_execsql_test 4.1 {
32579d4544dSdan  SELECT a, sum(b) OVER (
32679d4544dSdan    PARTITION BY (b%10)
32779d4544dSdan    ORDER BY b
32879d4544dSdan  ) FROM t2 ORDER BY a;
32908f6de7fSdan} {1 0   2 754   3 251   4 754   5 101   6 1247   7 132   8 266   9 6   10 950
33008f6de7fSdan  11 667   12 1052   13 535   14 128   15 428   16 250   17 336   18 1122
33108f6de7fSdan  19 368   20 6   21 1247   22 1000   23 92   24 368   25 584   26 320
33208f6de7fSdan  27 1000   28 24   29 478   30 133   31 1049   32 1090   33 632   34 101
33308f6de7fSdan  35 54   36 54   37 1049   38 450   39 145   40 354   41 21   42 764
33408f6de7fSdan  43 754   44 424   45 1122   46 930   47 42   48 930   49 352   50 535
33508f6de7fSdan  51 42   52 118   53 536   54 6   55 1122   56 86   57 770   58 255   59 50
33608f6de7fSdan  60 52   61 950   62 75   63 354   64 2   65 536   66 160   67 352   68 536
33708f6de7fSdan  69 54   70 675   71 276   72 950   73 868   74 678   75 667   76 4
33808f6de7fSdan  77 1184   78 160   79 120   80 584   81 266   82 133   83 405   84 468
33908f6de7fSdan  85 6   86 806   87 166   88 500   89 1090   90 552   91 251   92 27
34008f6de7fSdan  93 424   94 687   95 1215   96 450   97 32   98 360   99 1052   100 868
34108f6de7fSdan  101 2   102 66   103 754   104 450   105 145   106 5   107 687   108 24
34208f6de7fSdan  109 302   110 806   111 251   112 42   113 24   114 30   115 128   116 128
34308f6de7fSdan  117 50   118 1215   119 86   120 687   121 683   122 672   123 178   124 24
34408f6de7fSdan  125 24   126 299   127 178   128 770   129 535   130 1052   131 270
34508f6de7fSdan  132 255   133 675   134 632   135 266   136 6   137 21   138 930   139 411
34608f6de7fSdan  140 754   141 133   142 340   143 535   144 46   145 250   146 132
34708f6de7fSdan  147 132   148 354   149 500   150 770   151 276   152 360   153 354
34808f6de7fSdan  154 27   155 552   156 552   157 602   158 266   159 1049   160 675
34908f6de7fSdan  161 384   162 667   163 27   164 101   165 166   166 32   167 42   168 18
35008f6de7fSdan  169 336   170 1122   171 276   172 1122   173 266   174 50   175 178
35108f6de7fSdan  176 276   177 1247   178 6   179 1215   180 604   181 360   182 212
35208f6de7fSdan  183 120   184 210   185 1090   186 10   187 1090   188 266   189 66
35308f6de7fSdan  190 250   191 266   192 360   193 120   194 128   195 178   196 770
35408f6de7fSdan  197 92   198 634   199 38   200 21}
35579d4544dSdan
35679d4544dSdando_execsql_test 4.2 {
35779d4544dSdan  SELECT a, sum(b) OVER (
35879d4544dSdan    PARTITION BY (b%10)
35979d4544dSdan    ORDER BY b
36079d4544dSdan    RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
36179d4544dSdan  ) FROM t2 ORDER BY a;
36208f6de7fSdan} {1 0   2 754   3 251   4 754   5 101   6 1247   7 132   8 266   9 6   10 950
36308f6de7fSdan  11 667   12 1052   13 535   14 128   15 428   16 250   17 336   18 1122
36408f6de7fSdan  19 368   20 6   21 1247   22 1000   23 92   24 368   25 584   26 320
36508f6de7fSdan  27 1000   28 24   29 478   30 133   31 1049   32 1090   33 632   34 101
36608f6de7fSdan  35 54   36 54   37 1049   38 450   39 145   40 354   41 21   42 764
36708f6de7fSdan  43 754   44 424   45 1122   46 930   47 42   48 930   49 352   50 535
36808f6de7fSdan  51 42   52 118   53 536   54 6   55 1122   56 86   57 770   58 255   59 50
36908f6de7fSdan  60 52   61 950   62 75   63 354   64 2   65 536   66 160   67 352   68 536
37008f6de7fSdan  69 54   70 675   71 276   72 950   73 868   74 678   75 667   76 4
37108f6de7fSdan  77 1184   78 160   79 120   80 584   81 266   82 133   83 405   84 468
37208f6de7fSdan  85 6   86 806   87 166   88 500   89 1090   90 552   91 251   92 27
37308f6de7fSdan  93 424   94 687   95 1215   96 450   97 32   98 360   99 1052   100 868
37408f6de7fSdan  101 2   102 66   103 754   104 450   105 145   106 5   107 687   108 24
37508f6de7fSdan  109 302   110 806   111 251   112 42   113 24   114 30   115 128   116 128
37608f6de7fSdan  117 50   118 1215   119 86   120 687   121 683   122 672   123 178   124 24
37708f6de7fSdan  125 24   126 299   127 178   128 770   129 535   130 1052   131 270
37808f6de7fSdan  132 255   133 675   134 632   135 266   136 6   137 21   138 930   139 411
37908f6de7fSdan  140 754   141 133   142 340   143 535   144 46   145 250   146 132
38008f6de7fSdan  147 132   148 354   149 500   150 770   151 276   152 360   153 354
38108f6de7fSdan  154 27   155 552   156 552   157 602   158 266   159 1049   160 675
38208f6de7fSdan  161 384   162 667   163 27   164 101   165 166   166 32   167 42   168 18
38308f6de7fSdan  169 336   170 1122   171 276   172 1122   173 266   174 50   175 178
38408f6de7fSdan  176 276   177 1247   178 6   179 1215   180 604   181 360   182 212
38508f6de7fSdan  183 120   184 210   185 1090   186 10   187 1090   188 266   189 66
38608f6de7fSdan  190 250   191 266   192 360   193 120   194 128   195 178   196 770
38708f6de7fSdan  197 92   198 634   199 38   200 21}
38879d4544dSdan
38979d4544dSdando_execsql_test 4.3 {
39079d4544dSdan  SELECT b, sum(b) OVER (
39179d4544dSdan    ORDER BY b
39279d4544dSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
39379d4544dSdan  ) FROM t2 ORDER BY b;
39408f6de7fSdan} {0 0   1 1   1 2   2 4   2 6   2 8   3 11   3 14   4 18   5 23   6 29   7 36
39508f6de7fSdan  7 43   7 50   8 58   8 66   8 74   9 83   9 92   9 101   10 111   11 122
39608f6de7fSdan  11 133   12 145   12 157   12 169   13 182   13 195   14 209   15 224
39708f6de7fSdan  15 239   15 254   16 270   16 286   16 302   17 319   19 338   20 358
39808f6de7fSdan  21 379   21 400   22 422   22 444   23 467   23 490   23 513   24 537
39908f6de7fSdan  25 562   26 588   26 614   26 640   27 667   27 694   28 722   29 751
40008f6de7fSdan  29 780   29 809   30 839   30 869   30 899   31 930   31 961   32 993
40108f6de7fSdan  33 1026   33 1059   33 1092   33 1125   33 1158   34 1192   34 1226
40208f6de7fSdan  34 1260   34 1294   35 1329   35 1364   36 1400   36 1436   36 1472
40308f6de7fSdan  36 1508   37 1545   37 1582   38 1620   38 1658   39 1697   39 1736
40408f6de7fSdan  39 1775   40 1815   41 1856   41 1897   41 1938   42 1980   43 2023
40508f6de7fSdan  43 2066   44 2110   44 2154   46 2200   46 2246   47 2293   47 2340
40608f6de7fSdan  47 2387   47 2434   49 2483   50 2533   51 2584   52 2636   53 2689
40708f6de7fSdan  54 2743   55 2798   55 2853   56 2909   56 2965   56 3021   57 3078
40808f6de7fSdan  58 3136   58 3194   58 3252   58 3310   59 3369   59 3428   59 3487
40908f6de7fSdan  59 3546   60 3606   61 3667   61 3728   62 3790   62 3852   63 3915
41008f6de7fSdan  64 3979   65 4044   65 4109   65 4174   66 4240   67 4307   68 4375
41108f6de7fSdan  69 4444   70 4514   72 4586   72 4658   72 4730   73 4803   73 4876
41208f6de7fSdan  73 4949   74 5023   74 5097   74 5171   74 5245   74 5319   75 5394
41308f6de7fSdan  75 5469   75 5544   76 5620   77 5697   77 5774   78 5852   78 5930
41408f6de7fSdan  79 6009   80 6089   80 6169   81 6250   81 6331   81 6412   82 6494
41508f6de7fSdan  83 6577   84 6661   84 6745   84 6829   84 6913   85 6998   85 7083
41608f6de7fSdan  85 7168   86 7254   87 7341   87 7428   88 7516   89 7605   89 7694
41708f6de7fSdan  89 7783   90 7873   90 7963   90 8053   91 8144   91 8235   91 8326
41808f6de7fSdan  91 8417   91 8508   93 8601   93 8694   93 8787   94 8881   95 8976
41908f6de7fSdan  95 9071   95 9166   96 9262   96 9358   96 9454   97 9551   97 9648
42008f6de7fSdan  98 9746   98 9844   99 9943   99 10042   99 10141}
42179d4544dSdan
42279d4544dSdando_execsql_test 4.4 {
42379d4544dSdan  SELECT b, sum(b) OVER (
42479d4544dSdan    ORDER BY b
425d6f784efSdan    RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
42679d4544dSdan  ) FROM t2 ORDER BY b;
42708f6de7fSdan} {0 10141   1 10141   1 10141   2 10141   2 10141   2 10141   3 10141
42808f6de7fSdan  3 10141   4 10141   5 10141   6 10141   7 10141   7 10141   7 10141
42908f6de7fSdan  8 10141   8 10141   8 10141   9 10141   9 10141   9 10141   10 10141
43008f6de7fSdan  11 10141   11 10141   12 10141   12 10141   12 10141   13 10141   13 10141
43108f6de7fSdan  14 10141   15 10141   15 10141   15 10141   16 10141   16 10141   16 10141
43208f6de7fSdan  17 10141   19 10141   20 10141   21 10141   21 10141   22 10141   22 10141
43308f6de7fSdan  23 10141   23 10141   23 10141   24 10141   25 10141   26 10141   26 10141
43408f6de7fSdan  26 10141   27 10141   27 10141   28 10141   29 10141   29 10141   29 10141
43508f6de7fSdan  30 10141   30 10141   30 10141   31 10141   31 10141   32 10141   33 10141
43608f6de7fSdan  33 10141   33 10141   33 10141   33 10141   34 10141   34 10141   34 10141
43708f6de7fSdan  34 10141   35 10141   35 10141   36 10141   36 10141   36 10141   36 10141
43808f6de7fSdan  37 10141   37 10141   38 10141   38 10141   39 10141   39 10141   39 10141
43908f6de7fSdan  40 10141   41 10141   41 10141   41 10141   42 10141   43 10141   43 10141
44008f6de7fSdan  44 10141   44 10141   46 10141   46 10141   47 10141   47 10141   47 10141
44108f6de7fSdan  47 10141   49 10141   50 10141   51 10141   52 10141   53 10141   54 10141
44208f6de7fSdan  55 10141   55 10141   56 10141   56 10141   56 10141   57 10141   58 10141
44308f6de7fSdan  58 10141   58 10141   58 10141   59 10141   59 10141   59 10141   59 10141
44408f6de7fSdan  60 10141   61 10141   61 10141   62 10141   62 10141   63 10141   64 10141
44508f6de7fSdan  65 10141   65 10141   65 10141   66 10141   67 10141   68 10141   69 10141
44608f6de7fSdan  70 10141   72 10141   72 10141   72 10141   73 10141   73 10141   73 10141
44708f6de7fSdan  74 10141   74 10141   74 10141   74 10141   74 10141   75 10141   75 10141
44808f6de7fSdan  75 10141   76 10141   77 10141   77 10141   78 10141   78 10141   79 10141
44908f6de7fSdan  80 10141   80 10141   81 10141   81 10141   81 10141   82 10141   83 10141
45008f6de7fSdan  84 10141   84 10141   84 10141   84 10141   85 10141   85 10141   85 10141
45108f6de7fSdan  86 10141   87 10141   87 10141   88 10141   89 10141   89 10141   89 10141
45208f6de7fSdan  90 10141   90 10141   90 10141   91 10141   91 10141   91 10141   91 10141
45308f6de7fSdan  91 10141   93 10141   93 10141   93 10141   94 10141   95 10141   95 10141
45408f6de7fSdan  95 10141   96 10141   96 10141   96 10141   97 10141   97 10141   98 10141
45508f6de7fSdan  98 10141   99 10141   99 10141   99 10141}
456d6f784efSdan
457d6f784efSdando_execsql_test 4.5 {
458d6f784efSdan  SELECT b, sum(b) OVER (
459d6f784efSdan    ORDER BY b
460d6f784efSdan    RANGE BETWEEN CURRENT ROW AND CURRENT ROW
461d6f784efSdan  ) FROM t2 ORDER BY b;
46208f6de7fSdan} {0 0   1 2   1 2   2 6   2 6   2 6   3 6   3 6   4 4   5 5   6 6   7 21
46308f6de7fSdan  7 21   7 21   8 24   8 24   8 24   9 27   9 27   9 27   10 10   11 22
46408f6de7fSdan  11 22   12 36   12 36   12 36   13 26   13 26   14 14   15 45   15 45
46508f6de7fSdan  15 45   16 48   16 48   16 48   17 17   19 19   20 20   21 42   21 42
46608f6de7fSdan  22 44   22 44   23 69   23 69   23 69   24 24   25 25   26 78   26 78
46708f6de7fSdan  26 78   27 54   27 54   28 28   29 87   29 87   29 87   30 90   30 90
46808f6de7fSdan  30 90   31 62   31 62   32 32   33 165   33 165   33 165   33 165   33 165
46908f6de7fSdan  34 136   34 136   34 136   34 136   35 70   35 70   36 144   36 144
47008f6de7fSdan  36 144   36 144   37 74   37 74   38 76   38 76   39 117   39 117   39 117
47108f6de7fSdan  40 40   41 123   41 123   41 123   42 42   43 86   43 86   44 88   44 88
47208f6de7fSdan  46 92   46 92   47 188   47 188   47 188   47 188   49 49   50 50   51 51
47308f6de7fSdan  52 52   53 53   54 54   55 110   55 110   56 168   56 168   56 168   57 57
47408f6de7fSdan  58 232   58 232   58 232   58 232   59 236   59 236   59 236   59 236
47508f6de7fSdan  60 60   61 122   61 122   62 124   62 124   63 63   64 64   65 195   65 195
47608f6de7fSdan  65 195   66 66   67 67   68 68   69 69   70 70   72 216   72 216   72 216
47708f6de7fSdan  73 219   73 219   73 219   74 370   74 370   74 370   74 370   74 370
47808f6de7fSdan  75 225   75 225   75 225   76 76   77 154   77 154   78 156   78 156
47908f6de7fSdan  79 79   80 160   80 160   81 243   81 243   81 243   82 82   83 83   84 336
48008f6de7fSdan  84 336   84 336   84 336   85 255   85 255   85 255   86 86   87 174
48108f6de7fSdan  87 174   88 88   89 267   89 267   89 267   90 270   90 270   90 270
48208f6de7fSdan  91 455   91 455   91 455   91 455   91 455   93 279   93 279   93 279
48308f6de7fSdan  94 94   95 285   95 285   95 285   96 288   96 288   96 288   97 194
48408f6de7fSdan  97 194   98 196   98 196   99 297   99 297   99 297}
485d6f784efSdan
486d6f784efSdando_execsql_test 4.6.1 {
487d6f784efSdan  SELECT b, sum(b) OVER (
488d6f784efSdan    RANGE BETWEEN CURRENT ROW AND CURRENT ROW
489d6f784efSdan  ) FROM t2 ORDER BY b;
49008f6de7fSdan} {0 10141   1 10141   1 10141   2 10141   2 10141   2 10141   3 10141
49108f6de7fSdan  3 10141   4 10141   5 10141   6 10141   7 10141   7 10141   7 10141
49208f6de7fSdan  8 10141   8 10141   8 10141   9 10141   9 10141   9 10141   10 10141
49308f6de7fSdan  11 10141   11 10141   12 10141   12 10141   12 10141   13 10141   13 10141
49408f6de7fSdan  14 10141   15 10141   15 10141   15 10141   16 10141   16 10141   16 10141
49508f6de7fSdan  17 10141   19 10141   20 10141   21 10141   21 10141   22 10141   22 10141
49608f6de7fSdan  23 10141   23 10141   23 10141   24 10141   25 10141   26 10141   26 10141
49708f6de7fSdan  26 10141   27 10141   27 10141   28 10141   29 10141   29 10141   29 10141
49808f6de7fSdan  30 10141   30 10141   30 10141   31 10141   31 10141   32 10141   33 10141
49908f6de7fSdan  33 10141   33 10141   33 10141   33 10141   34 10141   34 10141   34 10141
50008f6de7fSdan  34 10141   35 10141   35 10141   36 10141   36 10141   36 10141   36 10141
50108f6de7fSdan  37 10141   37 10141   38 10141   38 10141   39 10141   39 10141   39 10141
50208f6de7fSdan  40 10141   41 10141   41 10141   41 10141   42 10141   43 10141   43 10141
50308f6de7fSdan  44 10141   44 10141   46 10141   46 10141   47 10141   47 10141   47 10141
50408f6de7fSdan  47 10141   49 10141   50 10141   51 10141   52 10141   53 10141   54 10141
50508f6de7fSdan  55 10141   55 10141   56 10141   56 10141   56 10141   57 10141   58 10141
50608f6de7fSdan  58 10141   58 10141   58 10141   59 10141   59 10141   59 10141   59 10141
50708f6de7fSdan  60 10141   61 10141   61 10141   62 10141   62 10141   63 10141   64 10141
50808f6de7fSdan  65 10141   65 10141   65 10141   66 10141   67 10141   68 10141   69 10141
50908f6de7fSdan  70 10141   72 10141   72 10141   72 10141   73 10141   73 10141   73 10141
51008f6de7fSdan  74 10141   74 10141   74 10141   74 10141   74 10141   75 10141   75 10141
51108f6de7fSdan  75 10141   76 10141   77 10141   77 10141   78 10141   78 10141   79 10141
51208f6de7fSdan  80 10141   80 10141   81 10141   81 10141   81 10141   82 10141   83 10141
51308f6de7fSdan  84 10141   84 10141   84 10141   84 10141   85 10141   85 10141   85 10141
51408f6de7fSdan  86 10141   87 10141   87 10141   88 10141   89 10141   89 10141   89 10141
51508f6de7fSdan  90 10141   90 10141   90 10141   91 10141   91 10141   91 10141   91 10141
51608f6de7fSdan  91 10141   93 10141   93 10141   93 10141   94 10141   95 10141   95 10141
51708f6de7fSdan  95 10141   96 10141   96 10141   96 10141   97 10141   97 10141   98 10141
51808f6de7fSdan  98 10141   99 10141   99 10141   99 10141}
519d6f784efSdan
520d6f784efSdando_execsql_test 4.6.2 {
521d6f784efSdan  SELECT b, sum(b) OVER () FROM t2 ORDER BY b;
52208f6de7fSdan} {0 10141   1 10141   1 10141   2 10141   2 10141   2 10141   3 10141
52308f6de7fSdan  3 10141   4 10141   5 10141   6 10141   7 10141   7 10141   7 10141
52408f6de7fSdan  8 10141   8 10141   8 10141   9 10141   9 10141   9 10141   10 10141
52508f6de7fSdan  11 10141   11 10141   12 10141   12 10141   12 10141   13 10141   13 10141
52608f6de7fSdan  14 10141   15 10141   15 10141   15 10141   16 10141   16 10141   16 10141
52708f6de7fSdan  17 10141   19 10141   20 10141   21 10141   21 10141   22 10141   22 10141
52808f6de7fSdan  23 10141   23 10141   23 10141   24 10141   25 10141   26 10141   26 10141
52908f6de7fSdan  26 10141   27 10141   27 10141   28 10141   29 10141   29 10141   29 10141
53008f6de7fSdan  30 10141   30 10141   30 10141   31 10141   31 10141   32 10141   33 10141
53108f6de7fSdan  33 10141   33 10141   33 10141   33 10141   34 10141   34 10141   34 10141
53208f6de7fSdan  34 10141   35 10141   35 10141   36 10141   36 10141   36 10141   36 10141
53308f6de7fSdan  37 10141   37 10141   38 10141   38 10141   39 10141   39 10141   39 10141
53408f6de7fSdan  40 10141   41 10141   41 10141   41 10141   42 10141   43 10141   43 10141
53508f6de7fSdan  44 10141   44 10141   46 10141   46 10141   47 10141   47 10141   47 10141
53608f6de7fSdan  47 10141   49 10141   50 10141   51 10141   52 10141   53 10141   54 10141
53708f6de7fSdan  55 10141   55 10141   56 10141   56 10141   56 10141   57 10141   58 10141
53808f6de7fSdan  58 10141   58 10141   58 10141   59 10141   59 10141   59 10141   59 10141
53908f6de7fSdan  60 10141   61 10141   61 10141   62 10141   62 10141   63 10141   64 10141
54008f6de7fSdan  65 10141   65 10141   65 10141   66 10141   67 10141   68 10141   69 10141
54108f6de7fSdan  70 10141   72 10141   72 10141   72 10141   73 10141   73 10141   73 10141
54208f6de7fSdan  74 10141   74 10141   74 10141   74 10141   74 10141   75 10141   75 10141
54308f6de7fSdan  75 10141   76 10141   77 10141   77 10141   78 10141   78 10141   79 10141
54408f6de7fSdan  80 10141   80 10141   81 10141   81 10141   81 10141   82 10141   83 10141
54508f6de7fSdan  84 10141   84 10141   84 10141   84 10141   85 10141   85 10141   85 10141
54608f6de7fSdan  86 10141   87 10141   87 10141   88 10141   89 10141   89 10141   89 10141
54708f6de7fSdan  90 10141   90 10141   90 10141   91 10141   91 10141   91 10141   91 10141
54808f6de7fSdan  91 10141   93 10141   93 10141   93 10141   94 10141   95 10141   95 10141
54908f6de7fSdan  95 10141   96 10141   96 10141   96 10141   97 10141   97 10141   98 10141
55008f6de7fSdan  98 10141   99 10141   99 10141   99 10141}
551d6f784efSdan
552d6f784efSdando_execsql_test 4.6.3 {
553d6f784efSdan  SELECT b, sum(b) OVER (
554d6f784efSdan    RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
555d6f784efSdan  ) FROM t2 ORDER BY b;
55608f6de7fSdan} {0 10141   1 10141   1 10141   2 10141   2 10141   2 10141   3 10141
55708f6de7fSdan  3 10141   4 10141   5 10141   6 10141   7 10141   7 10141   7 10141
55808f6de7fSdan  8 10141   8 10141   8 10141   9 10141   9 10141   9 10141   10 10141
55908f6de7fSdan  11 10141   11 10141   12 10141   12 10141   12 10141   13 10141   13 10141
56008f6de7fSdan  14 10141   15 10141   15 10141   15 10141   16 10141   16 10141   16 10141
56108f6de7fSdan  17 10141   19 10141   20 10141   21 10141   21 10141   22 10141   22 10141
56208f6de7fSdan  23 10141   23 10141   23 10141   24 10141   25 10141   26 10141   26 10141
56308f6de7fSdan  26 10141   27 10141   27 10141   28 10141   29 10141   29 10141   29 10141
56408f6de7fSdan  30 10141   30 10141   30 10141   31 10141   31 10141   32 10141   33 10141
56508f6de7fSdan  33 10141   33 10141   33 10141   33 10141   34 10141   34 10141   34 10141
56608f6de7fSdan  34 10141   35 10141   35 10141   36 10141   36 10141   36 10141   36 10141
56708f6de7fSdan  37 10141   37 10141   38 10141   38 10141   39 10141   39 10141   39 10141
56808f6de7fSdan  40 10141   41 10141   41 10141   41 10141   42 10141   43 10141   43 10141
56908f6de7fSdan  44 10141   44 10141   46 10141   46 10141   47 10141   47 10141   47 10141
57008f6de7fSdan  47 10141   49 10141   50 10141   51 10141   52 10141   53 10141   54 10141
57108f6de7fSdan  55 10141   55 10141   56 10141   56 10141   56 10141   57 10141   58 10141
57208f6de7fSdan  58 10141   58 10141   58 10141   59 10141   59 10141   59 10141   59 10141
57308f6de7fSdan  60 10141   61 10141   61 10141   62 10141   62 10141   63 10141   64 10141
57408f6de7fSdan  65 10141   65 10141   65 10141   66 10141   67 10141   68 10141   69 10141
57508f6de7fSdan  70 10141   72 10141   72 10141   72 10141   73 10141   73 10141   73 10141
57608f6de7fSdan  74 10141   74 10141   74 10141   74 10141   74 10141   75 10141   75 10141
57708f6de7fSdan  75 10141   76 10141   77 10141   77 10141   78 10141   78 10141   79 10141
57808f6de7fSdan  80 10141   80 10141   81 10141   81 10141   81 10141   82 10141   83 10141
57908f6de7fSdan  84 10141   84 10141   84 10141   84 10141   85 10141   85 10141   85 10141
58008f6de7fSdan  86 10141   87 10141   87 10141   88 10141   89 10141   89 10141   89 10141
58108f6de7fSdan  90 10141   90 10141   90 10141   91 10141   91 10141   91 10141   91 10141
58208f6de7fSdan  91 10141   93 10141   93 10141   93 10141   94 10141   95 10141   95 10141
58308f6de7fSdan  95 10141   96 10141   96 10141   96 10141   97 10141   97 10141   98 10141
58408f6de7fSdan  98 10141   99 10141   99 10141   99 10141}
585d6f784efSdan
586d6f784efSdando_execsql_test 4.6.4 {
587d6f784efSdan  SELECT b, sum(b) OVER (
588d6f784efSdan    RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
589d6f784efSdan  ) FROM t2 ORDER BY b;
59008f6de7fSdan} {0 10141   1 10141   1 10141   2 10141   2 10141   2 10141   3 10141
59108f6de7fSdan  3 10141   4 10141   5 10141   6 10141   7 10141   7 10141   7 10141
59208f6de7fSdan  8 10141   8 10141   8 10141   9 10141   9 10141   9 10141   10 10141
59308f6de7fSdan  11 10141   11 10141   12 10141   12 10141   12 10141   13 10141   13 10141
59408f6de7fSdan  14 10141   15 10141   15 10141   15 10141   16 10141   16 10141   16 10141
59508f6de7fSdan  17 10141   19 10141   20 10141   21 10141   21 10141   22 10141   22 10141
59608f6de7fSdan  23 10141   23 10141   23 10141   24 10141   25 10141   26 10141   26 10141
59708f6de7fSdan  26 10141   27 10141   27 10141   28 10141   29 10141   29 10141   29 10141
59808f6de7fSdan  30 10141   30 10141   30 10141   31 10141   31 10141   32 10141   33 10141
59908f6de7fSdan  33 10141   33 10141   33 10141   33 10141   34 10141   34 10141   34 10141
60008f6de7fSdan  34 10141   35 10141   35 10141   36 10141   36 10141   36 10141   36 10141
60108f6de7fSdan  37 10141   37 10141   38 10141   38 10141   39 10141   39 10141   39 10141
60208f6de7fSdan  40 10141   41 10141   41 10141   41 10141   42 10141   43 10141   43 10141
60308f6de7fSdan  44 10141   44 10141   46 10141   46 10141   47 10141   47 10141   47 10141
60408f6de7fSdan  47 10141   49 10141   50 10141   51 10141   52 10141   53 10141   54 10141
60508f6de7fSdan  55 10141   55 10141   56 10141   56 10141   56 10141   57 10141   58 10141
60608f6de7fSdan  58 10141   58 10141   58 10141   59 10141   59 10141   59 10141   59 10141
60708f6de7fSdan  60 10141   61 10141   61 10141   62 10141   62 10141   63 10141   64 10141
60808f6de7fSdan  65 10141   65 10141   65 10141   66 10141   67 10141   68 10141   69 10141
60908f6de7fSdan  70 10141   72 10141   72 10141   72 10141   73 10141   73 10141   73 10141
61008f6de7fSdan  74 10141   74 10141   74 10141   74 10141   74 10141   75 10141   75 10141
61108f6de7fSdan  75 10141   76 10141   77 10141   77 10141   78 10141   78 10141   79 10141
61208f6de7fSdan  80 10141   80 10141   81 10141   81 10141   81 10141   82 10141   83 10141
61308f6de7fSdan  84 10141   84 10141   84 10141   84 10141   85 10141   85 10141   85 10141
61408f6de7fSdan  86 10141   87 10141   87 10141   88 10141   89 10141   89 10141   89 10141
61508f6de7fSdan  90 10141   90 10141   90 10141   91 10141   91 10141   91 10141   91 10141
61608f6de7fSdan  91 10141   93 10141   93 10141   93 10141   94 10141   95 10141   95 10141
61708f6de7fSdan  95 10141   96 10141   96 10141   96 10141   97 10141   97 10141   98 10141
61808f6de7fSdan  98 10141   99 10141   99 10141   99 10141}
619d6f784efSdan
620d6f784efSdando_execsql_test 4.7.1 {
621d6f784efSdan  SELECT b, sum(b) OVER (
622d6f784efSdan    ROWS BETWEEN CURRENT ROW AND CURRENT ROW
623d6f784efSdan  ) FROM t2 ORDER BY 1, 2;
62408f6de7fSdan} {0 0   1 1   1 1   2 2   2 2   2 2   3 3   3 3   4 4   5 5   6 6   7 7   7 7
62508f6de7fSdan  7 7   8 8   8 8   8 8   9 9   9 9   9 9   10 10   11 11   11 11   12 12
62608f6de7fSdan  12 12   12 12   13 13   13 13   14 14   15 15   15 15   15 15   16 16
62708f6de7fSdan  16 16   16 16   17 17   19 19   20 20   21 21   21 21   22 22   22 22
62808f6de7fSdan  23 23   23 23   23 23   24 24   25 25   26 26   26 26   26 26   27 27
62908f6de7fSdan  27 27   28 28   29 29   29 29   29 29   30 30   30 30   30 30   31 31
63008f6de7fSdan  31 31   32 32   33 33   33 33   33 33   33 33   33 33   34 34   34 34
63108f6de7fSdan  34 34   34 34   35 35   35 35   36 36   36 36   36 36   36 36   37 37
63208f6de7fSdan  37 37   38 38   38 38   39 39   39 39   39 39   40 40   41 41   41 41
63308f6de7fSdan  41 41   42 42   43 43   43 43   44 44   44 44   46 46   46 46   47 47
63408f6de7fSdan  47 47   47 47   47 47   49 49   50 50   51 51   52 52   53 53   54 54
63508f6de7fSdan  55 55   55 55   56 56   56 56   56 56   57 57   58 58   58 58   58 58
63608f6de7fSdan  58 58   59 59   59 59   59 59   59 59   60 60   61 61   61 61   62 62
63708f6de7fSdan  62 62   63 63   64 64   65 65   65 65   65 65   66 66   67 67   68 68
63808f6de7fSdan  69 69   70 70   72 72   72 72   72 72   73 73   73 73   73 73   74 74
63908f6de7fSdan  74 74   74 74   74 74   74 74   75 75   75 75   75 75   76 76   77 77
64008f6de7fSdan  77 77   78 78   78 78   79 79   80 80   80 80   81 81   81 81   81 81
64108f6de7fSdan  82 82   83 83   84 84   84 84   84 84   84 84   85 85   85 85   85 85
64208f6de7fSdan  86 86   87 87   87 87   88 88   89 89   89 89   89 89   90 90   90 90
64308f6de7fSdan  90 90   91 91   91 91   91 91   91 91   91 91   93 93   93 93   93 93
64408f6de7fSdan  94 94   95 95   95 95   95 95   96 96   96 96   96 96   97 97   97 97
64508f6de7fSdan  98 98   98 98   99 99   99 99   99 99}
646d6f784efSdan
647d6f784efSdando_execsql_test 4.7.2 {
648d6f784efSdan  SELECT b, sum(b) OVER (
649d6f784efSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
650d6f784efSdan  ) FROM t2 ORDER BY 1, 2;
65108f6de7fSdan} {0 0   1 3379   1 5443   2 372   2 4473   2 7074   3 2916   3 9096   4 4049
65208f6de7fSdan  5 5643   6 1047   7 2205   7 7081   7 10141   8 1553   8 5926   8 6422
65308f6de7fSdan  9 4883   9 7932   9 8497   10 9544   11 5727   11 6433   12 2825   12 5918
65408f6de7fSdan  12 8582   13 5190   13 8570   14 8596   15 3189   15 6023   15 8924
65508f6de7fSdan  16 1942   16 1958   16 3590   17 10134   19 7474   20 5946   21 5464
65608f6de7fSdan  21 9682   22 3029   22 6140   23 212   23 1926   23 8520   24 2626
65708f6de7fSdan  25 3331   26 337   26 7539   26 7565   27 1270   27 10035   28 3217
65808f6de7fSdan  29 1649   29 4355   29 7326   30 4215   30 9400   30 9853   31 5977
65908f6de7fSdan  31 6008   32 2857   33 370   33 4326   33 8175   33 8909   33 9661
66008f6de7fSdan  34 6414   34 6516   34 8958   34 9925   35 2151   35 5638   36 3701
66108f6de7fSdan  36 7818   36 8785   36 8994   37 4597   37 8557   38 735   38 9891   39 842
66208f6de7fSdan  39 7513   39 9721   40 3475   41 115   41 4874   41 5906   42 4185
66308f6de7fSdan  43 2754   43 3518   44 7072   44 9765   46 1041   46 1316   47 2198
66408f6de7fSdan  47 3378   47 7612   47 7923   49 6482   50 9450   51 5778   52 9370
66508f6de7fSdan  53 4408   54 1448   55 3174   55 6876   56 2913   56 3435   56 3574
66608f6de7fSdan  57 7223   58 5248   58 7876   58 9318   58 9823   59 697   59 2813
66708f6de7fSdan  59 6665   59 7455   60 6821   61 2426   61 4944   62 904   62 8658
66808f6de7fSdan  63 4471   64 8407   65 2116   65 5177   65 5603   66 8142   67 1620
66908f6de7fSdan  68 803   69 9260   70 7396   72 4833   72 8004   72 8076   73 5017
67008f6de7fSdan  73 5716   73 6213   74 74   74 189   74 2365   74 5538   74 7297   75 3665
67108f6de7fSdan  75 6951   75 8343   76 3964   77 1903   77 7028   78 1394   78 4293
67208f6de7fSdan  79 6292   80 4677   80 7692   81 542   81 4045   81 8488   82 10117
67308f6de7fSdan  83 10008   84 1826   84 4761   84 9534   84 9628   85 2602   85 2711
67408f6de7fSdan  85 7166   86 2291   87 4560   87 5865   88 6380   89 461   89 3306
67508f6de7fSdan  89 3790   90 3119   90 6606   90 7782   91 995   91 2517   91 3007
67608f6de7fSdan  91 8749   91 8876   93 1742   93 2051   93 8268   94 4143   95 5112
67708f6de7fSdan  95 6118   95 9191   96 638   96 5344   96 6761   97 1243   97 1545
67808f6de7fSdan  98 3888   98 5442   99 311   99 1146   99 9093}
679d6f784efSdan
680d6f784efSdando_execsql_test 4.7.3 {
681d6f784efSdan  SELECT b, sum(b) OVER (
682d6f784efSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
683d6f784efSdan  ) FROM t2 ORDER BY 1, 2;
68408f6de7fSdan} {0 10141   1 10141   1 10141   2 10141   2 10141   2 10141   3 10141
68508f6de7fSdan  3 10141   4 10141   5 10141   6 10141   7 10141   7 10141   7 10141
68608f6de7fSdan  8 10141   8 10141   8 10141   9 10141   9 10141   9 10141   10 10141
68708f6de7fSdan  11 10141   11 10141   12 10141   12 10141   12 10141   13 10141   13 10141
68808f6de7fSdan  14 10141   15 10141   15 10141   15 10141   16 10141   16 10141   16 10141
68908f6de7fSdan  17 10141   19 10141   20 10141   21 10141   21 10141   22 10141   22 10141
69008f6de7fSdan  23 10141   23 10141   23 10141   24 10141   25 10141   26 10141   26 10141
69108f6de7fSdan  26 10141   27 10141   27 10141   28 10141   29 10141   29 10141   29 10141
69208f6de7fSdan  30 10141   30 10141   30 10141   31 10141   31 10141   32 10141   33 10141
69308f6de7fSdan  33 10141   33 10141   33 10141   33 10141   34 10141   34 10141   34 10141
69408f6de7fSdan  34 10141   35 10141   35 10141   36 10141   36 10141   36 10141   36 10141
69508f6de7fSdan  37 10141   37 10141   38 10141   38 10141   39 10141   39 10141   39 10141
69608f6de7fSdan  40 10141   41 10141   41 10141   41 10141   42 10141   43 10141   43 10141
69708f6de7fSdan  44 10141   44 10141   46 10141   46 10141   47 10141   47 10141   47 10141
69808f6de7fSdan  47 10141   49 10141   50 10141   51 10141   52 10141   53 10141   54 10141
69908f6de7fSdan  55 10141   55 10141   56 10141   56 10141   56 10141   57 10141   58 10141
70008f6de7fSdan  58 10141   58 10141   58 10141   59 10141   59 10141   59 10141   59 10141
70108f6de7fSdan  60 10141   61 10141   61 10141   62 10141   62 10141   63 10141   64 10141
70208f6de7fSdan  65 10141   65 10141   65 10141   66 10141   67 10141   68 10141   69 10141
70308f6de7fSdan  70 10141   72 10141   72 10141   72 10141   73 10141   73 10141   73 10141
70408f6de7fSdan  74 10141   74 10141   74 10141   74 10141   74 10141   75 10141   75 10141
70508f6de7fSdan  75 10141   76 10141   77 10141   77 10141   78 10141   78 10141   79 10141
70608f6de7fSdan  80 10141   80 10141   81 10141   81 10141   81 10141   82 10141   83 10141
70708f6de7fSdan  84 10141   84 10141   84 10141   84 10141   85 10141   85 10141   85 10141
70808f6de7fSdan  86 10141   87 10141   87 10141   88 10141   89 10141   89 10141   89 10141
70908f6de7fSdan  90 10141   90 10141   90 10141   91 10141   91 10141   91 10141   91 10141
71008f6de7fSdan  91 10141   93 10141   93 10141   93 10141   94 10141   95 10141   95 10141
71108f6de7fSdan  95 10141   96 10141   96 10141   96 10141   97 10141   97 10141   98 10141
71208f6de7fSdan  98 10141   99 10141   99 10141   99 10141}
713d6f784efSdan
714d6f784efSdando_execsql_test 4.7.4 {
715d6f784efSdan  SELECT b, sum(b) OVER (
716d6f784efSdan    ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
717d6f784efSdan  ) FROM t2 ORDER BY 1, 2;
71808f6de7fSdan} {0 10141   1 4699   1 6763   2 3069   2 5670   2 9771   3 1048   3 7228
71908f6de7fSdan  4 6096   5 4503   6 9100   7 7   7 3067   7 7943   8 3727   8 4223   8 8596
72008f6de7fSdan  9 1653   9 2218   9 5267   10 607   11 3719   11 4425   12 1571   12 4235
72108f6de7fSdan  12 7328   13 1584   13 4964   14 1559   15 1232   15 4133   15 6967
72208f6de7fSdan  16 6567   16 8199   16 8215   17 24   19 2686   20 4215   21 480   21 4698
72308f6de7fSdan  22 4023   22 7134   23 1644   23 8238   23 9952   24 7539   25 6835
72408f6de7fSdan  26 2602   26 2628   26 9830   27 133   27 8898   28 6952   29 2844
72508f6de7fSdan  29 5815   29 8521   30 318   30 771   30 5956   31 4164   31 4195   32 7316
72608f6de7fSdan  33 513   33 1265   33 1999   33 5848   33 9804   34 250   34 1217   34 3659
72708f6de7fSdan  34 3761   35 4538   35 8025   36 1183   36 1392   36 2359   36 6476
72808f6de7fSdan  37 1621   37 5581   38 288   38 9444   39 459   39 2667   39 9338   40 6706
72908f6de7fSdan  41 4276   41 5308   41 10067   42 5998   43 6666   43 7430   44 420
73008f6de7fSdan  44 3113   46 8871   46 9146   47 2265   47 2576   47 6810   47 7990
73108f6de7fSdan  49 3708   50 741   51 4414   52 823   53 5786   54 8747   55 3320   55 7022
73208f6de7fSdan  56 6623   56 6762   56 7284   57 2975   58 376   58 881   58 2323   58 4951
73308f6de7fSdan  59 2745   59 3535   59 7387   59 9503   60 3380   61 5258   61 7776
73408f6de7fSdan  62 1545   62 9299   63 5733   64 1798   65 4603   65 5029   65 8090
73508f6de7fSdan  66 2065   67 8588   68 9406   69 950   70 2815   72 2137   72 2209
73608f6de7fSdan  72 5380   73 4001   73 4498   73 5197   74 2918   74 4677   74 7850
73708f6de7fSdan  74 10026   74 10141   75 1873   75 3265   75 6551   76 6253   77 3190
73808f6de7fSdan  77 8315   78 5926   78 8825   79 3928   80 2529   80 5544   81 1734
73908f6de7fSdan  81 6177   81 9680   82 106   83 216   84 597   84 691   84 5464   84 8399
74008f6de7fSdan  85 3060   85 7515   85 7624   86 7936   87 4363   87 5668   88 3849
74108f6de7fSdan  89 6440   89 6924   89 9769   90 2449   90 3625   90 7112   91 1356
74208f6de7fSdan  91 1483   91 7225   91 7715   91 9237   93 1966   93 8183   93 8492
74308f6de7fSdan  94 6092   95 1045   95 4118   95 5124   96 3476   96 4893   96 9599
74408f6de7fSdan  97 8693   97 8995   98 4797   98 6351   99 1147   99 9094   99 9929}
745d6f784efSdan
746d6f784efSdando_execsql_test 4.8.1 {
747d6f784efSdan  SELECT b, sum(b) OVER (
748d6f784efSdan    ORDER BY a
749d6f784efSdan    ROWS BETWEEN CURRENT ROW AND CURRENT ROW
750d6f784efSdan  ) FROM t2 ORDER BY 1, 2;
75108f6de7fSdan} {0 0   1 1   1 1   2 2   2 2   2 2   3 3   3 3   4 4   5 5   6 6   7 7   7 7
75208f6de7fSdan  7 7   8 8   8 8   8 8   9 9   9 9   9 9   10 10   11 11   11 11   12 12
75308f6de7fSdan  12 12   12 12   13 13   13 13   14 14   15 15   15 15   15 15   16 16
75408f6de7fSdan  16 16   16 16   17 17   19 19   20 20   21 21   21 21   22 22   22 22
75508f6de7fSdan  23 23   23 23   23 23   24 24   25 25   26 26   26 26   26 26   27 27
75608f6de7fSdan  27 27   28 28   29 29   29 29   29 29   30 30   30 30   30 30   31 31
75708f6de7fSdan  31 31   32 32   33 33   33 33   33 33   33 33   33 33   34 34   34 34
75808f6de7fSdan  34 34   34 34   35 35   35 35   36 36   36 36   36 36   36 36   37 37
75908f6de7fSdan  37 37   38 38   38 38   39 39   39 39   39 39   40 40   41 41   41 41
76008f6de7fSdan  41 41   42 42   43 43   43 43   44 44   44 44   46 46   46 46   47 47
76108f6de7fSdan  47 47   47 47   47 47   49 49   50 50   51 51   52 52   53 53   54 54
76208f6de7fSdan  55 55   55 55   56 56   56 56   56 56   57 57   58 58   58 58   58 58
76308f6de7fSdan  58 58   59 59   59 59   59 59   59 59   60 60   61 61   61 61   62 62
76408f6de7fSdan  62 62   63 63   64 64   65 65   65 65   65 65   66 66   67 67   68 68
76508f6de7fSdan  69 69   70 70   72 72   72 72   72 72   73 73   73 73   73 73   74 74
76608f6de7fSdan  74 74   74 74   74 74   74 74   75 75   75 75   75 75   76 76   77 77
76708f6de7fSdan  77 77   78 78   78 78   79 79   80 80   80 80   81 81   81 81   81 81
76808f6de7fSdan  82 82   83 83   84 84   84 84   84 84   84 84   85 85   85 85   85 85
76908f6de7fSdan  86 86   87 87   87 87   88 88   89 89   89 89   89 89   90 90   90 90
77008f6de7fSdan  90 90   91 91   91 91   91 91   91 91   91 91   93 93   93 93   93 93
77108f6de7fSdan  94 94   95 95   95 95   95 95   96 96   96 96   96 96   97 97   97 97
77208f6de7fSdan  98 98   98 98   99 99   99 99   99 99}
773d6f784efSdan
774d6f784efSdando_execsql_test 4.8.2 {
775d6f784efSdan  SELECT b, sum(b) OVER (
776d6f784efSdan    ORDER BY a
777d6f784efSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
778d6f784efSdan  ) FROM t2 ORDER BY 1, 2;
77908f6de7fSdan} {0 0   1 3379   1 5443   2 372   2 4473   2 7074   3 2916   3 9096   4 4049
78008f6de7fSdan  5 5643   6 1047   7 2205   7 7081   7 10141   8 1553   8 5926   8 6422
78108f6de7fSdan  9 4883   9 7932   9 8497   10 9544   11 5727   11 6433   12 2825   12 5918
78208f6de7fSdan  12 8582   13 5190   13 8570   14 8596   15 3189   15 6023   15 8924
78308f6de7fSdan  16 1942   16 1958   16 3590   17 10134   19 7474   20 5946   21 5464
78408f6de7fSdan  21 9682   22 3029   22 6140   23 212   23 1926   23 8520   24 2626
78508f6de7fSdan  25 3331   26 337   26 7539   26 7565   27 1270   27 10035   28 3217
78608f6de7fSdan  29 1649   29 4355   29 7326   30 4215   30 9400   30 9853   31 5977
78708f6de7fSdan  31 6008   32 2857   33 370   33 4326   33 8175   33 8909   33 9661
78808f6de7fSdan  34 6414   34 6516   34 8958   34 9925   35 2151   35 5638   36 3701
78908f6de7fSdan  36 7818   36 8785   36 8994   37 4597   37 8557   38 735   38 9891   39 842
79008f6de7fSdan  39 7513   39 9721   40 3475   41 115   41 4874   41 5906   42 4185
79108f6de7fSdan  43 2754   43 3518   44 7072   44 9765   46 1041   46 1316   47 2198
79208f6de7fSdan  47 3378   47 7612   47 7923   49 6482   50 9450   51 5778   52 9370
79308f6de7fSdan  53 4408   54 1448   55 3174   55 6876   56 2913   56 3435   56 3574
79408f6de7fSdan  57 7223   58 5248   58 7876   58 9318   58 9823   59 697   59 2813
79508f6de7fSdan  59 6665   59 7455   60 6821   61 2426   61 4944   62 904   62 8658
79608f6de7fSdan  63 4471   64 8407   65 2116   65 5177   65 5603   66 8142   67 1620
79708f6de7fSdan  68 803   69 9260   70 7396   72 4833   72 8004   72 8076   73 5017
79808f6de7fSdan  73 5716   73 6213   74 74   74 189   74 2365   74 5538   74 7297   75 3665
79908f6de7fSdan  75 6951   75 8343   76 3964   77 1903   77 7028   78 1394   78 4293
80008f6de7fSdan  79 6292   80 4677   80 7692   81 542   81 4045   81 8488   82 10117
80108f6de7fSdan  83 10008   84 1826   84 4761   84 9534   84 9628   85 2602   85 2711
80208f6de7fSdan  85 7166   86 2291   87 4560   87 5865   88 6380   89 461   89 3306
80308f6de7fSdan  89 3790   90 3119   90 6606   90 7782   91 995   91 2517   91 3007
80408f6de7fSdan  91 8749   91 8876   93 1742   93 2051   93 8268   94 4143   95 5112
80508f6de7fSdan  95 6118   95 9191   96 638   96 5344   96 6761   97 1243   97 1545
80608f6de7fSdan  98 3888   98 5442   99 311   99 1146   99 9093}
807d6f784efSdan
808d6f784efSdando_execsql_test 4.8.3 {
809d6f784efSdan  SELECT b, sum(b) OVER (
810d6f784efSdan    ORDER BY a
811d6f784efSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
812d6f784efSdan  ) FROM t2 ORDER BY 1, 2;
81308f6de7fSdan} {0 10141   1 10141   1 10141   2 10141   2 10141   2 10141   3 10141
81408f6de7fSdan  3 10141   4 10141   5 10141   6 10141   7 10141   7 10141   7 10141
81508f6de7fSdan  8 10141   8 10141   8 10141   9 10141   9 10141   9 10141   10 10141
81608f6de7fSdan  11 10141   11 10141   12 10141   12 10141   12 10141   13 10141   13 10141
81708f6de7fSdan  14 10141   15 10141   15 10141   15 10141   16 10141   16 10141   16 10141
81808f6de7fSdan  17 10141   19 10141   20 10141   21 10141   21 10141   22 10141   22 10141
81908f6de7fSdan  23 10141   23 10141   23 10141   24 10141   25 10141   26 10141   26 10141
82008f6de7fSdan  26 10141   27 10141   27 10141   28 10141   29 10141   29 10141   29 10141
82108f6de7fSdan  30 10141   30 10141   30 10141   31 10141   31 10141   32 10141   33 10141
82208f6de7fSdan  33 10141   33 10141   33 10141   33 10141   34 10141   34 10141   34 10141
82308f6de7fSdan  34 10141   35 10141   35 10141   36 10141   36 10141   36 10141   36 10141
82408f6de7fSdan  37 10141   37 10141   38 10141   38 10141   39 10141   39 10141   39 10141
82508f6de7fSdan  40 10141   41 10141   41 10141   41 10141   42 10141   43 10141   43 10141
82608f6de7fSdan  44 10141   44 10141   46 10141   46 10141   47 10141   47 10141   47 10141
82708f6de7fSdan  47 10141   49 10141   50 10141   51 10141   52 10141   53 10141   54 10141
82808f6de7fSdan  55 10141   55 10141   56 10141   56 10141   56 10141   57 10141   58 10141
82908f6de7fSdan  58 10141   58 10141   58 10141   59 10141   59 10141   59 10141   59 10141
83008f6de7fSdan  60 10141   61 10141   61 10141   62 10141   62 10141   63 10141   64 10141
83108f6de7fSdan  65 10141   65 10141   65 10141   66 10141   67 10141   68 10141   69 10141
83208f6de7fSdan  70 10141   72 10141   72 10141   72 10141   73 10141   73 10141   73 10141
83308f6de7fSdan  74 10141   74 10141   74 10141   74 10141   74 10141   75 10141   75 10141
83408f6de7fSdan  75 10141   76 10141   77 10141   77 10141   78 10141   78 10141   79 10141
83508f6de7fSdan  80 10141   80 10141   81 10141   81 10141   81 10141   82 10141   83 10141
83608f6de7fSdan  84 10141   84 10141   84 10141   84 10141   85 10141   85 10141   85 10141
83708f6de7fSdan  86 10141   87 10141   87 10141   88 10141   89 10141   89 10141   89 10141
83808f6de7fSdan  90 10141   90 10141   90 10141   91 10141   91 10141   91 10141   91 10141
83908f6de7fSdan  91 10141   93 10141   93 10141   93 10141   94 10141   95 10141   95 10141
84008f6de7fSdan  95 10141   96 10141   96 10141   96 10141   97 10141   97 10141   98 10141
84108f6de7fSdan  98 10141   99 10141   99 10141   99 10141}
842d6f784efSdan
843d6f784efSdando_execsql_test 4.8.4 {
844d6f784efSdan  SELECT b, sum(b) OVER (
845d6f784efSdan    ORDER BY a
846d6f784efSdan    ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
847d6f784efSdan  ) FROM t2 ORDER BY 1, 2;
84808f6de7fSdan} {0 10141   1 4699   1 6763   2 3069   2 5670   2 9771   3 1048   3 7228
84908f6de7fSdan  4 6096   5 4503   6 9100   7 7   7 3067   7 7943   8 3727   8 4223   8 8596
85008f6de7fSdan  9 1653   9 2218   9 5267   10 607   11 3719   11 4425   12 1571   12 4235
85108f6de7fSdan  12 7328   13 1584   13 4964   14 1559   15 1232   15 4133   15 6967
85208f6de7fSdan  16 6567   16 8199   16 8215   17 24   19 2686   20 4215   21 480   21 4698
85308f6de7fSdan  22 4023   22 7134   23 1644   23 8238   23 9952   24 7539   25 6835
85408f6de7fSdan  26 2602   26 2628   26 9830   27 133   27 8898   28 6952   29 2844
85508f6de7fSdan  29 5815   29 8521   30 318   30 771   30 5956   31 4164   31 4195   32 7316
85608f6de7fSdan  33 513   33 1265   33 1999   33 5848   33 9804   34 250   34 1217   34 3659
85708f6de7fSdan  34 3761   35 4538   35 8025   36 1183   36 1392   36 2359   36 6476
85808f6de7fSdan  37 1621   37 5581   38 288   38 9444   39 459   39 2667   39 9338   40 6706
85908f6de7fSdan  41 4276   41 5308   41 10067   42 5998   43 6666   43 7430   44 420
86008f6de7fSdan  44 3113   46 8871   46 9146   47 2265   47 2576   47 6810   47 7990
86108f6de7fSdan  49 3708   50 741   51 4414   52 823   53 5786   54 8747   55 3320   55 7022
86208f6de7fSdan  56 6623   56 6762   56 7284   57 2975   58 376   58 881   58 2323   58 4951
86308f6de7fSdan  59 2745   59 3535   59 7387   59 9503   60 3380   61 5258   61 7776
86408f6de7fSdan  62 1545   62 9299   63 5733   64 1798   65 4603   65 5029   65 8090
86508f6de7fSdan  66 2065   67 8588   68 9406   69 950   70 2815   72 2137   72 2209
86608f6de7fSdan  72 5380   73 4001   73 4498   73 5197   74 2918   74 4677   74 7850
86708f6de7fSdan  74 10026   74 10141   75 1873   75 3265   75 6551   76 6253   77 3190
86808f6de7fSdan  77 8315   78 5926   78 8825   79 3928   80 2529   80 5544   81 1734
86908f6de7fSdan  81 6177   81 9680   82 106   83 216   84 597   84 691   84 5464   84 8399
87008f6de7fSdan  85 3060   85 7515   85 7624   86 7936   87 4363   87 5668   88 3849
87108f6de7fSdan  89 6440   89 6924   89 9769   90 2449   90 3625   90 7112   91 1356
87208f6de7fSdan  91 1483   91 7225   91 7715   91 9237   93 1966   93 8183   93 8492
87308f6de7fSdan  94 6092   95 1045   95 4118   95 5124   96 3476   96 4893   96 9599
87408f6de7fSdan  97 8693   97 8995   98 4797   98 6351   99 1147   99 9094   99 9929}
87508f6de7fSdan
87608f6de7fSdan
87708f6de7fSdando_test 4.9 {
87808f6de7fSdan  set myres {}
87908f6de7fSdan  foreach r [db eval {SELECT
88008f6de7fSdan    rank() OVER win AS rank,
88108f6de7fSdan    cume_dist() OVER win AS cume_dist FROM t1
88208f6de7fSdan  WINDOW win AS (ORDER BY 1);}] {
88308f6de7fSdan    lappend myres [format %.4f [set r]]
88408f6de7fSdan  }
88508f6de7fSdan  set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000}
88608f6de7fSdan  set i 0
88708f6de7fSdan  foreach r [set myres] r2 [set res2] {
88808f6de7fSdan    if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} {
88908f6de7fSdan      error "list element [set i] does not match: got=[set r] expected=[set r2]"
89008f6de7fSdan    }
89108f6de7fSdan    incr i
89208f6de7fSdan  }
89308f6de7fSdan  set {} {}
89408f6de7fSdan} {}
895f9eae18bSdan
896b28c4e56Sdando_execsql_test 4.10 {
897b28c4e56Sdan  SELECT count(*) OVER (ORDER BY b) FROM t1
898b28c4e56Sdan} {3   3   3   6   6   6}
899b28c4e56Sdan
9001efcc9ddSdando_execsql_test 4.11 {
9011efcc9ddSdan  SELECT count(distinct a) FILTER (WHERE b='odd') FROM t1
9021efcc9ddSdan} {3}
9031efcc9ddSdan
904a51ddb1eSdan#==========================================================================
905a51ddb1eSdan
906a51ddb1eSdando_execsql_test 5.0 {
907a51ddb1eSdan  DROP TABLE IF EXISTS t1;
908a51ddb1eSdan  CREATE TABLE t1(x INTEGER, y INTEGER);
909a51ddb1eSdan  INSERT INTO t1 VALUES(10, 1);
910a51ddb1eSdan  INSERT INTO t1 VALUES(20, 2);
911a51ddb1eSdan  INSERT INTO t1 VALUES(3, 3);
912a51ddb1eSdan  INSERT INTO t1 VALUES(2, 4);
913a51ddb1eSdan  INSERT INTO t1 VALUES(1, 5);
914a51ddb1eSdan} {}
915a51ddb1eSdan
916a51ddb1eSdan
917a51ddb1eSdando_test 5.1 {
918a51ddb1eSdan  set myres {}
919a51ddb1eSdan  foreach r [db eval {SELECT avg(x) OVER (ORDER BY y) AS z FROM t1 ORDER BY z;}] {
920a51ddb1eSdan    lappend myres [format %.4f [set r]]
921a51ddb1eSdan  }
922a51ddb1eSdan  set res2 {7.2000 8.7500 10.0000 11.0000 15.0000}
923a51ddb1eSdan  set i 0
924a51ddb1eSdan  foreach r [set myres] r2 [set res2] {
925a51ddb1eSdan    if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} {
926a51ddb1eSdan      error "list element [set i] does not match: got=[set r] expected=[set r2]"
927a51ddb1eSdan    }
928a51ddb1eSdan    incr i
929a51ddb1eSdan  }
930a51ddb1eSdan  set {} {}
931a51ddb1eSdan} {}
932a51ddb1eSdan
93369843342Sdan#==========================================================================
93469843342Sdan
93569843342Sdando_execsql_test 6.0 {
93669843342Sdan  DROP TABLE IF EXISTS t0;
93769843342Sdan  CREATE TABLE t0(c0 INTEGER UNIQUE);
93869843342Sdan  INSERT INTO t0 VALUES(0);
93969843342Sdan} {}
94069843342Sdan
94169843342Sdando_execsql_test 6.1 {
94269843342Sdan  SELECT DENSE_RANK() OVER(), LAG(0) OVER() FROM t0;
94369843342Sdan} {1 {}}
94469843342Sdan
94569843342Sdando_execsql_test 6.2 {
94669843342Sdan  SELECT * FROM t0 WHERE
94769843342Sdan      (0, t0.c0) IN (SELECT DENSE_RANK() OVER(), LAG(0) OVER() FROM t0);
94869843342Sdan} {}
94969843342Sdan
950*d8d2fb92Sdan#==========================================================================
951*d8d2fb92Sdan
952*d8d2fb92Sdando_execsql_test 7.0 {
953*d8d2fb92Sdan  DROP TABLE IF EXISTS t1;
954*d8d2fb92Sdan  CREATE TABLE t1(a INTEGER, b INTEGER, c INTEGER);
955*d8d2fb92Sdan  INSERT INTO t1 VALUES(1, 1, 1);
956*d8d2fb92Sdan  INSERT INTO t1 VALUES(1, 2, 2);
957*d8d2fb92Sdan  INSERT INTO t1 VALUES(3, 3, 3);
958*d8d2fb92Sdan  INSERT INTO t1 VALUES(3, 4, 4);
959*d8d2fb92Sdan} {}
960*d8d2fb92Sdan
961*d8d2fb92Sdando_execsql_test 7.1 {
962*d8d2fb92Sdan  SELECT c, sum(c) OVER win1 FROM t1
963*d8d2fb92Sdan  WINDOW win1 AS (ORDER BY b)
964*d8d2fb92Sdan} {1 1   2 3   3 6   4 10}
965*d8d2fb92Sdan
966*d8d2fb92Sdando_execsql_test 7.2 {
967*d8d2fb92Sdan  SELECT c, sum(c) OVER win1 FROM t1
968*d8d2fb92Sdan  WINDOW win1 AS (PARTITION BY 1 ORDER BY b)
969*d8d2fb92Sdan} {1 1   2 3   3 6   4 10}
970*d8d2fb92Sdan
971*d8d2fb92Sdando_execsql_test 7.3 {
972*d8d2fb92Sdan  SELECT c, sum(c) OVER win1 FROM t1
973*d8d2fb92Sdan  WINDOW win1 AS (ORDER BY 1)
974*d8d2fb92Sdan} {1 10   2 10   3 10   4 10}
975*d8d2fb92Sdan
976b6e9f7a4Sdanfinish_test
977