xref: /sqlite-3.40.0/test/window8.test (revision bdabe742)
1# 2019 March 01
2#
3# The author disclaims copyright to this source code.  In place of
4# a legal notice, here is a blessing:
5#
6#    May you do good and not evil.
7#    May you find forgiveness for yourself and forgive others.
8#    May you share freely, never taking more than you give.
9#
10#***********************************************************************
11# This file implements regression tests for SQLite library.
12#
13
14####################################################
15# DO NOT EDIT! THIS FILE IS AUTOMATICALLY GENERATED!
16####################################################
17
18set testdir [file dirname $argv0]
19source $testdir/tester.tcl
20set testprefix window8
21
22ifcapable !windowfunc { finish_test ; return }
23do_execsql_test 1.0 {
24  DROP TABLE IF EXISTS t3;
25  CREATE TABLE t3(a TEXT, b TEXT, c INTEGER);
26  INSERT INTO t3 VALUES
27    ('HH', 'bb', 355), ('CC', 'aa', 158), ('BB', 'aa', 399),
28    ('FF', 'bb', 938), ('HH', 'aa', 480), ('FF', 'bb', 870),
29    ('JJ', 'aa', 768), ('JJ', 'aa', 899), ('GG', 'bb', 929),
30    ('II', 'bb', 421), ('GG', 'bb', 844), ('FF', 'bb', 574),
31    ('CC', 'bb', 822), ('GG', 'bb', 938), ('BB', 'aa', 660),
32    ('HH', 'aa', 979), ('BB', 'bb', 792), ('DD', 'aa', 845),
33    ('JJ', 'bb', 354), ('FF', 'bb', 295), ('JJ', 'aa', 234),
34    ('BB', 'bb', 840), ('AA', 'aa', 934), ('EE', 'aa', 113),
35    ('AA', 'bb', 309), ('BB', 'aa', 412), ('AA', 'aa', 911),
36    ('AA', 'bb', 572), ('II', 'aa', 398), ('II', 'bb', 250),
37    ('II', 'aa', 652), ('BB', 'bb', 633), ('AA', 'aa', 239),
38    ('FF', 'aa', 670), ('BB', 'bb', 705), ('HH', 'bb', 963),
39    ('CC', 'bb', 346), ('II', 'bb', 671), ('BB', 'aa', 247),
40    ('AA', 'aa', 223), ('GG', 'aa', 480), ('HH', 'aa', 790),
41    ('FF', 'aa', 208), ('BB', 'bb', 711), ('EE', 'aa', 777),
42    ('DD', 'bb', 716), ('CC', 'aa', 759), ('CC', 'aa', 430),
43    ('CC', 'aa', 607), ('DD', 'bb', 794), ('GG', 'aa', 148),
44    ('GG', 'aa', 634), ('JJ', 'bb', 257), ('DD', 'bb', 959),
45    ('FF', 'bb', 726), ('BB', 'aa', 762), ('JJ', 'bb', 336),
46    ('GG', 'aa', 335), ('HH', 'bb', 330), ('GG', 'bb', 160),
47    ('JJ', 'bb', 839), ('FF', 'aa', 618), ('BB', 'aa', 393),
48    ('EE', 'bb', 629), ('FF', 'aa', 667), ('AA', 'bb', 870),
49    ('FF', 'bb', 102), ('JJ', 'aa', 113), ('DD', 'aa', 224),
50    ('AA', 'bb', 627), ('HH', 'bb', 730), ('II', 'bb', 443),
51    ('HH', 'bb', 133), ('EE', 'bb', 252), ('II', 'bb', 805),
52    ('BB', 'bb', 786), ('EE', 'bb', 768), ('HH', 'bb', 683),
53    ('DD', 'bb', 238), ('DD', 'aa', 256);
54} {}
55
56do_execsql_test 1.1.1 {
57  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
58} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
59  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
60  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
61  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
62  CC bb 12025   CC bb 12025   DD aa 15147   DD aa 15147   DD aa 15147
63  DD bb 15147   DD bb 15147   DD bb 15147   DD bb 15147   EE aa 19179
64  EE aa 19179   EE bb 19179   EE bb 19179   EE bb 19179   FF aa 21718
65  FF aa 21718   FF aa 21718   FF aa 21718   FF bb 21718   FF bb 21718
66  FF bb 21718   FF bb 21718   FF bb 21718   FF bb 21718   GG aa 27386
67  GG aa 27386   GG aa 27386   GG aa 27386   GG bb 27386   GG bb 27386
68  GG bb 27386   GG bb 27386   HH aa 31854   HH aa 31854   HH aa 31854
69  HH bb 31854   HH bb 31854   HH bb 31854   HH bb 31854   HH bb 31854
70  HH bb 31854   II aa 37297   II aa 37297   II bb 37297   II bb 37297
71  II bb 37297   II bb 37297   II bb 37297   JJ aa 40937   JJ aa 40937
72  JJ aa 40937   JJ aa 40937   JJ bb 40937   JJ bb 40937   JJ bb 40937
73  JJ bb 40937}
74
75do_execsql_test 1.1.2 {
76  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
77} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
78  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
79  BB aa 4685   BB aa 4685   BB bb 7558   BB bb 7558   BB bb 7558   BB bb 7558
80  BB bb 7558   BB bb 7558   CC aa 12025   CC aa 12025   CC aa 12025
81  CC aa 12025   CC bb 13979   CC bb 13979   DD aa 15147   DD aa 15147
82  DD aa 15147   DD bb 16472   DD bb 16472   DD bb 16472   DD bb 16472
83  EE aa 19179   EE aa 19179   EE bb 20069   EE bb 20069   EE bb 20069
84  FF aa 21718   FF aa 21718   FF aa 21718   FF aa 21718   FF bb 23881
85  FF bb 23881   FF bb 23881   FF bb 23881   FF bb 23881   FF bb 23881
86  GG aa 27386   GG aa 27386   GG aa 27386   GG aa 27386   GG bb 28983
87  GG bb 28983   GG bb 28983   GG bb 28983   HH aa 31854   HH aa 31854
88  HH aa 31854   HH bb 34103   HH bb 34103   HH bb 34103   HH bb 34103
89  HH bb 34103   HH bb 34103   II aa 37297   II aa 37297   II bb 38347
90  II bb 38347   II bb 38347   II bb 38347   II bb 38347   JJ aa 40937
91  JJ aa 40937   JJ aa 40937   JJ aa 40937   JJ bb 42951   JJ bb 42951
92  JJ bb 42951   JJ bb 42951}
93
94do_execsql_test 1.1.3 {
95  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
96} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
97  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
98  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
99  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
100  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
101  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
102  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
103  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
104  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
105  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
106  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
107  JJ bb 73   JJ bb 73   JJ bb 73}
108
109do_execsql_test 1.1.4 {
110  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
111} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 934   AA bb 934
112  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
113  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
114  BB bb 934   BB bb 934   CC aa 934   CC aa 934   CC aa 934   CC aa 934
115  CC bb 934   CC bb 934   DD aa 934   DD aa 934   DD aa 934   DD bb 934
116  DD bb 934   DD bb 934   DD bb 934   EE aa 959   EE aa 959   EE bb 959
117  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
118  FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959
119  GG aa 959   GG aa 959   GG aa 959   GG aa 959   GG bb 959   GG bb 959
120  GG bb 959   GG bb 959   HH aa 959   HH aa 959   HH aa 959   HH bb 979
121  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
122  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
123  JJ aa 979   JJ aa 979   JJ aa 979   JJ aa 979   JJ bb 979   JJ bb 979
124  JJ bb 979   JJ bb 979}
125
126do_execsql_test 1.1.5 {
127  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
128} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 223   AA bb 223
129  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
130  BB aa 223   BB aa 223   BB bb 223   BB bb 223   BB bb 223   BB bb 223
131  BB bb 223   BB bb 223   CC aa 223   CC aa 223   CC aa 223   CC aa 223
132  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 158
133  DD bb 158   DD bb 158   DD bb 158   EE aa 158   EE aa 158   EE bb 113
134  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
135  FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113
136  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
137  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 102
138  HH bb 102   HH bb 102   HH bb 102   HH bb 102   HH bb 102   II aa 102
139  II aa 102   II bb 102   II bb 102   II bb 102   II bb 102   II bb 102
140  JJ aa 102   JJ aa 102   JJ aa 102   JJ aa 102   JJ bb 102   JJ bb 102
141  JJ bb 102   JJ bb 102}
142
143do_execsql_test 1.1.6 {
144  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
145} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
146  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
147  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
148  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
149  CC bb 12025   CC bb 12025   DD aa 15147   DD aa 15147   DD aa 15147
150  DD bb 15147   DD bb 15147   DD bb 15147   DD bb 15147   EE aa 19179
151  EE aa 19179   EE bb 19179   EE bb 19179   EE bb 19179   FF aa 21718
152  FF aa 21718   FF aa 21718   FF aa 21718   FF bb 21718   FF bb 21718
153  FF bb 21718   FF bb 21718   FF bb 21718   FF bb 21718   GG aa 27386
154  GG aa 27386   GG aa 27386   GG aa 27386   GG bb 27386   GG bb 27386
155  GG bb 27386   GG bb 27386   HH aa 31854   HH aa 31854   HH aa 31854
156  HH bb 31854   HH bb 31854   HH bb 31854   HH bb 31854   HH bb 31854
157  HH bb 31854   II aa 37297   II aa 37297   II bb 37297   II bb 37297
158  II bb 37297   II bb 37297   II bb 37297   JJ aa 40937   JJ aa 40937
159  JJ aa 40937   JJ aa 40937   JJ bb 40937   JJ bb 40937   JJ bb 40937
160  JJ bb 40937}
161
162do_execsql_test 1.1.7 {
163  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
164} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
165  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
166  BB aa 4685   BB aa 4685   BB bb 7558   BB bb 7558   BB bb 7558   BB bb 7558
167  BB bb 7558   BB bb 7558   CC aa 12025   CC aa 12025   CC aa 12025
168  CC aa 12025   CC bb 13979   CC bb 13979   DD aa 15147   DD aa 15147
169  DD aa 15147   DD bb 16472   DD bb 16472   DD bb 16472   DD bb 16472
170  EE aa 19179   EE aa 19179   EE bb 20069   EE bb 20069   EE bb 20069
171  FF aa 21718   FF aa 21718   FF aa 21718   FF aa 21718   FF bb 23881
172  FF bb 23881   FF bb 23881   FF bb 23881   FF bb 23881   FF bb 23881
173  GG aa 27386   GG aa 27386   GG aa 27386   GG aa 27386   GG bb 28983
174  GG bb 28983   GG bb 28983   GG bb 28983   HH aa 31854   HH aa 31854
175  HH aa 31854   HH bb 34103   HH bb 34103   HH bb 34103   HH bb 34103
176  HH bb 34103   HH bb 34103   II aa 37297   II aa 37297   II bb 38347
177  II bb 38347   II bb 38347   II bb 38347   II bb 38347   JJ aa 40937
178  JJ aa 40937   JJ aa 40937   JJ aa 40937   JJ bb 42951   JJ bb 42951
179  JJ bb 42951   JJ bb 42951}
180
181do_execsql_test 1.2.1 {
182  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
183} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
184  AA bb 4685   AA bb 4685   BB aa 12025   BB aa 12025   BB aa 12025
185  BB aa 12025   BB aa 12025   BB aa 12025   BB bb 12025   BB bb 12025
186  BB bb 12025   BB bb 12025   BB bb 12025   BB bb 12025   CC aa 15147
187  CC aa 15147   CC aa 15147   CC aa 15147   CC bb 15147   CC bb 15147
188  DD aa 19179   DD aa 19179   DD aa 19179   DD bb 19179   DD bb 19179
189  DD bb 19179   DD bb 19179   EE aa 21718   EE aa 21718   EE bb 21718
190  EE bb 21718   EE bb 21718   FF aa 27386   FF aa 27386   FF aa 27386
191  FF aa 27386   FF bb 27386   FF bb 27386   FF bb 27386   FF bb 27386
192  FF bb 27386   FF bb 27386   GG aa 31854   GG aa 31854   GG aa 31854
193  GG aa 31854   GG bb 31854   GG bb 31854   GG bb 31854   GG bb 31854
194  HH aa 37297   HH aa 37297   HH aa 37297   HH bb 37297   HH bb 37297
195  HH bb 37297   HH bb 37297   HH bb 37297   HH bb 37297   II aa 40937
196  II aa 40937   II bb 40937   II bb 40937   II bb 40937   II bb 40937
197  II bb 40937   JJ aa 44737   JJ aa 44737   JJ aa 44737   JJ aa 44737
198  JJ bb 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737}
199
200do_execsql_test 1.2.2 {
201  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
202} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 4685   AA bb 4685
203  AA bb 4685   AA bb 4685   BB aa 7558   BB aa 7558   BB aa 7558   BB aa 7558
204  BB aa 7558   BB aa 7558   BB bb 12025   BB bb 12025   BB bb 12025
205  BB bb 12025   BB bb 12025   BB bb 12025   CC aa 13979   CC aa 13979
206  CC aa 13979   CC aa 13979   CC bb 15147   CC bb 15147   DD aa 16472
207  DD aa 16472   DD aa 16472   DD bb 19179   DD bb 19179   DD bb 19179
208  DD bb 19179   EE aa 20069   EE aa 20069   EE bb 21718   EE bb 21718
209  EE bb 21718   FF aa 23881   FF aa 23881   FF aa 23881   FF aa 23881
210  FF bb 27386   FF bb 27386   FF bb 27386   FF bb 27386   FF bb 27386
211  FF bb 27386   GG aa 28983   GG aa 28983   GG aa 28983   GG aa 28983
212  GG bb 31854   GG bb 31854   GG bb 31854   GG bb 31854   HH aa 34103
213  HH aa 34103   HH aa 34103   HH bb 37297   HH bb 37297   HH bb 37297
214  HH bb 37297   HH bb 37297   HH bb 37297   II aa 38347   II aa 38347
215  II bb 40937   II bb 40937   II bb 40937   II bb 40937   II bb 40937
216  JJ aa 42951   JJ aa 42951   JJ aa 42951   JJ aa 42951   JJ bb 44737
217  JJ bb 44737   JJ bb 44737   JJ bb 44737}
218
219do_execsql_test 1.2.3 {
220  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
221} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
222  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
223  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
224  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
225  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
226  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
227  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
228  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
229  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
230  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
231  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
232  JJ bb 73   JJ bb 73   JJ bb 73}
233
234do_execsql_test 1.2.4 {
235  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
236} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 934   AA bb 934
237  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
238  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
239  BB bb 934   BB bb 934   CC aa 934   CC aa 934   CC aa 934   CC aa 934
240  CC bb 934   CC bb 934   DD aa 934   DD aa 934   DD aa 934   DD bb 959
241  DD bb 959   DD bb 959   DD bb 959   EE aa 959   EE aa 959   EE bb 959
242  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
243  FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959
244  GG aa 959   GG aa 959   GG aa 959   GG aa 959   GG bb 959   GG bb 959
245  GG bb 959   GG bb 959   HH aa 979   HH aa 979   HH aa 979   HH bb 979
246  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
247  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
248  JJ aa 979   JJ aa 979   JJ aa 979   JJ aa 979   JJ bb 979   JJ bb 979
249  JJ bb 979   JJ bb 979}
250
251do_execsql_test 1.2.5 {
252  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
253} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 223   AA bb 223
254  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
255  BB aa 223   BB aa 223   BB bb 223   BB bb 223   BB bb 223   BB bb 223
256  BB bb 223   BB bb 223   CC aa 158   CC aa 158   CC aa 158   CC aa 158
257  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 158
258  DD bb 158   DD bb 158   DD bb 158   EE aa 113   EE aa 113   EE bb 113
259  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
260  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
261  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
262  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 102
263  HH bb 102   HH bb 102   HH bb 102   HH bb 102   HH bb 102   II aa 102
264  II aa 102   II bb 102   II bb 102   II bb 102   II bb 102   II bb 102
265  JJ aa 102   JJ aa 102   JJ aa 102   JJ aa 102   JJ bb 102   JJ bb 102
266  JJ bb 102   JJ bb 102}
267
268do_execsql_test 1.2.6 {
269  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
270} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
271  AA bb 4113   AA bb 4376   BB aa 11263   BB aa 11365   BB aa 11613
272  BB aa 11626   BB aa 11632   BB aa 11778   BB bb 11185   BB bb 11233
273  BB bb 11239   BB bb 11314   BB bb 11320   BB bb 11392   CC aa 14388
274  CC aa 14540   CC aa 14717   CC aa 14989   CC bb 14325   CC bb 14801
275  DD aa 18334   DD aa 18923   DD aa 18955   DD bb 18220   DD bb 18385
276  DD bb 18463   DD bb 18941   EE aa 20941   EE aa 21605   EE bb 20950
277  EE bb 21089   EE bb 21466   FF aa 26716   FF aa 26719   FF aa 26768
278  FF aa 27178   FF bb 26448   FF bb 26516   FF bb 26660   FF bb 26812
279  FF bb 27091   FF bb 27284   GG aa 31220   GG aa 31374   GG aa 31519
280  GG aa 31706   GG bb 30916   GG bb 30925   GG bb 31010   GG bb 31694
281  HH aa 36318   HH aa 36507   HH aa 36817   HH bb 36334   HH bb 36567
282  HH bb 36614   HH bb 36942   HH bb 36967   HH bb 37164   II aa 40285
283  II aa 40539   II bb 40132   II bb 40266   II bb 40494   II bb 40516
284  II bb 40687   JJ aa 43838   JJ aa 43969   JJ aa 44503   JJ aa 44624
285  JJ bb 43898   JJ bb 44383   JJ bb 44401   JJ bb 44480}
286
287do_execsql_test 1.2.7 {
288  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
289} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 3815   AA bb 4058
290  AA bb 4113   AA bb 4376   BB aa 6796   BB aa 6898   BB aa 7146   BB aa 7159
291  BB aa 7165   BB aa 7311   BB bb 11185   BB bb 11233   BB bb 11239
292  BB bb 11314   BB bb 11320   BB bb 11392   CC aa 13220   CC aa 13372
293  CC aa 13549   CC aa 13821   CC bb 14325   CC bb 14801   DD aa 15627
294  DD aa 16216   DD aa 16248   DD bb 18220   DD bb 18385   DD bb 18463
295  DD bb 18941   EE aa 19292   EE aa 19956   EE bb 20950   EE bb 21089
296  EE bb 21466   FF aa 23211   FF aa 23214   FF aa 23263   FF aa 23673
297  FF bb 26448   FF bb 26516   FF bb 26660   FF bb 26812   FF bb 27091
298  FF bb 27284   GG aa 28349   GG aa 28503   GG aa 28648   GG aa 28835
299  GG bb 30916   GG bb 30925   GG bb 31010   GG bb 31694   HH aa 33124
300  HH aa 33313   HH aa 33623   HH bb 36334   HH bb 36567   HH bb 36614
301  HH bb 36942   HH bb 36967   HH bb 37164   II aa 37695   II aa 37949
302  II bb 40132   II bb 40266   II bb 40494   II bb 40516   II bb 40687
303  JJ aa 42052   JJ aa 42183   JJ aa 42717   JJ aa 42838   JJ bb 43898
304  JJ bb 44383   JJ bb 44401   JJ bb 44480}
305
306do_execsql_test 1.3.1 {
307  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
308} {AA aa 12025   AA aa 12025   AA aa 12025   AA aa 12025   AA bb 12025
309  AA bb 12025   AA bb 12025   AA bb 12025   BB aa 15147   BB aa 15147
310  BB aa 15147   BB aa 15147   BB aa 15147   BB aa 15147   BB bb 15147
311  BB bb 15147   BB bb 15147   BB bb 15147   BB bb 15147   BB bb 15147
312  CC aa 19179   CC aa 19179   CC aa 19179   CC aa 19179   CC bb 19179
313  CC bb 19179   DD aa 21718   DD aa 21718   DD aa 21718   DD bb 21718
314  DD bb 21718   DD bb 21718   DD bb 21718   EE aa 27386   EE aa 27386
315  EE bb 27386   EE bb 27386   EE bb 27386   FF aa 31854   FF aa 31854
316  FF aa 31854   FF aa 31854   FF bb 31854   FF bb 31854   FF bb 31854
317  FF bb 31854   FF bb 31854   FF bb 31854   GG aa 37297   GG aa 37297
318  GG aa 37297   GG aa 37297   GG bb 37297   GG bb 37297   GG bb 37297
319  GG bb 37297   HH aa 40937   HH aa 40937   HH aa 40937   HH bb 40937
320  HH bb 40937   HH bb 40937   HH bb 40937   HH bb 40937   HH bb 40937
321  II aa 44737   II aa 44737   II bb 44737   II bb 44737   II bb 44737
322  II bb 44737   II bb 44737   JJ aa 44737   JJ aa 44737   JJ aa 44737
323  JJ aa 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737}
324
325do_execsql_test 1.3.2 {
326  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
327} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 7558   AA bb 7558
328  AA bb 7558   AA bb 7558   BB aa 12025   BB aa 12025   BB aa 12025
329  BB aa 12025   BB aa 12025   BB aa 12025   BB bb 13979   BB bb 13979
330  BB bb 13979   BB bb 13979   BB bb 13979   BB bb 13979   CC aa 15147
331  CC aa 15147   CC aa 15147   CC aa 15147   CC bb 16472   CC bb 16472
332  DD aa 19179   DD aa 19179   DD aa 19179   DD bb 20069   DD bb 20069
333  DD bb 20069   DD bb 20069   EE aa 21718   EE aa 21718   EE bb 23881
334  EE bb 23881   EE bb 23881   FF aa 27386   FF aa 27386   FF aa 27386
335  FF aa 27386   FF bb 28983   FF bb 28983   FF bb 28983   FF bb 28983
336  FF bb 28983   FF bb 28983   GG aa 31854   GG aa 31854   GG aa 31854
337  GG aa 31854   GG bb 34103   GG bb 34103   GG bb 34103   GG bb 34103
338  HH aa 37297   HH aa 37297   HH aa 37297   HH bb 38347   HH bb 38347
339  HH bb 38347   HH bb 38347   HH bb 38347   HH bb 38347   II aa 40937
340  II aa 40937   II bb 42951   II bb 42951   II bb 42951   II bb 42951
341  II bb 42951   JJ aa 44737   JJ aa 44737   JJ aa 44737   JJ aa 44737
342  JJ bb 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737}
343
344do_execsql_test 1.3.3 {
345  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
346} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
347  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
348  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
349  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
350  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
351  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
352  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
353  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
354  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
355  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
356  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
357  JJ bb 73   JJ bb 73   JJ bb 73}
358
359do_execsql_test 1.3.4 {
360  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
361} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 934   AA bb 934
362  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
363  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
364  BB bb 934   BB bb 934   CC aa 934   CC aa 934   CC aa 934   CC aa 934
365  CC bb 934   CC bb 934   DD aa 959   DD aa 959   DD aa 959   DD bb 959
366  DD bb 959   DD bb 959   DD bb 959   EE aa 959   EE aa 959   EE bb 959
367  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
368  FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959
369  GG aa 959   GG aa 959   GG aa 959   GG aa 959   GG bb 979   GG bb 979
370  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 979
371  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
372  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
373  JJ aa 979   JJ aa 979   JJ aa 979   JJ aa 979   JJ bb 979   JJ bb 979
374  JJ bb 979   JJ bb 979}
375
376do_execsql_test 1.3.5 {
377  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
378} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 223   AA bb 223
379  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
380  BB aa 223   BB aa 223   BB bb 158   BB bb 158   BB bb 158   BB bb 158
381  BB bb 158   BB bb 158   CC aa 158   CC aa 158   CC aa 158   CC aa 158
382  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 113
383  DD bb 113   DD bb 113   DD bb 113   EE aa 113   EE aa 113   EE bb 113
384  EE bb 113   EE bb 113   FF aa 102   FF aa 102   FF aa 102   FF aa 102
385  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
386  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
387  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 102
388  HH bb 102   HH bb 102   HH bb 102   HH bb 102   HH bb 102   II aa 102
389  II aa 102   II bb 102   II bb 102   II bb 102   II bb 102   II bb 102
390  JJ aa 102   JJ aa 102   JJ aa 102   JJ aa 102   JJ bb 102   JJ bb 102
391  JJ bb 102   JJ bb 102}
392
393do_execsql_test 1.3.6 {
394  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
395} {AA aa 11091   AA aa 11114   AA aa 11786   AA aa 11802   AA bb 11155
396  AA bb 11398   AA bb 11453   AA bb 11716   BB aa 14385   BB aa 14487
397  BB aa 14735   BB aa 14748   BB aa 14754   BB aa 14900   BB bb 14307
398  BB bb 14355   BB bb 14361   BB bb 14436   BB bb 14442   BB bb 14514
399  CC aa 18420   CC aa 18572   CC aa 18749   CC aa 19021   CC bb 18357
400  CC bb 18833   DD aa 20873   DD aa 21462   DD aa 21494   DD bb 20759
401  DD bb 20924   DD bb 21002   DD bb 21480   EE aa 26609   EE aa 27273
402  EE bb 26618   EE bb 26757   EE bb 27134   FF aa 31184   FF aa 31187
403  FF aa 31236   FF aa 31646   FF bb 30916   FF bb 30984   FF bb 31128
404  FF bb 31280   FF bb 31559   FF bb 31752   GG aa 36663   GG aa 36817
405  GG aa 36962   GG aa 37149   GG bb 36359   GG bb 36368   GG bb 36453
406  GG bb 37137   HH aa 39958   HH aa 40147   HH aa 40457   HH bb 39974
407  HH bb 40207   HH bb 40254   HH bb 40582   HH bb 40607   HH bb 40804
408  II aa 44085   II aa 44339   II bb 43932   II bb 44066   II bb 44294
409  II bb 44316   II bb 44487   JJ aa 43838   JJ aa 43969   JJ aa 44503
410  JJ aa 44624   JJ bb 43898   JJ bb 44383   JJ bb 44401   JJ bb 44480}
411
412do_execsql_test 1.3.7 {
413  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
414} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 6688   AA bb 6931
415  AA bb 6986   AA bb 7249   BB aa 11263   BB aa 11365   BB aa 11613
416  BB aa 11626   BB aa 11632   BB aa 11778   BB bb 13139   BB bb 13187
417  BB bb 13193   BB bb 13268   BB bb 13274   BB bb 13346   CC aa 14388
418  CC aa 14540   CC aa 14717   CC aa 14989   CC bb 15650   CC bb 16126
419  DD aa 18334   DD aa 18923   DD aa 18955   DD bb 19110   DD bb 19275
420  DD bb 19353   DD bb 19831   EE aa 20941   EE aa 21605   EE bb 23113
421  EE bb 23252   EE bb 23629   FF aa 26716   FF aa 26719   FF aa 26768
422  FF aa 27178   FF bb 28045   FF bb 28113   FF bb 28257   FF bb 28409
423  FF bb 28688   FF bb 28881   GG aa 31220   GG aa 31374   GG aa 31519
424  GG aa 31706   GG bb 33165   GG bb 33174   GG bb 33259   GG bb 33943
425  HH aa 36318   HH aa 36507   HH aa 36817   HH bb 37384   HH bb 37617
426  HH bb 37664   HH bb 37992   HH bb 38017   HH bb 38214   II aa 40285
427  II aa 40539   II bb 42146   II bb 42280   II bb 42508   II bb 42530
428  II bb 42701   JJ aa 43838   JJ aa 43969   JJ aa 44503   JJ aa 44624
429  JJ bb 43898   JJ bb 44383   JJ bb 44401   JJ bb 44480}
430
431do_execsql_test 1.4.1 {
432  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
433} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
434  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 44737   BB aa 44737
435  BB aa 44737   BB aa 44737   BB aa 44737   BB aa 44737   BB bb 44737
436  BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737
437  CC aa 44737   CC aa 44737   CC aa 44737   CC aa 44737   CC bb 44737
438  CC bb 44737   DD aa 44737   DD aa 44737   DD aa 44737   DD bb 44737
439  DD bb 44737   DD bb 44737   DD bb 44737   EE aa 44737   EE aa 44737
440  EE bb 44737   EE bb 44737   EE bb 44737   FF aa 44737   FF aa 44737
441  FF aa 44737   FF aa 44737   FF bb 44737   FF bb 44737   FF bb 44737
442  FF bb 44737   FF bb 44737   FF bb 44737   GG aa 44737   GG aa 44737
443  GG aa 44737   GG aa 44737   GG bb 44737   GG bb 44737   GG bb 44737
444  GG bb 44737   HH aa 44737   HH aa 44737   HH aa 44737   HH bb 44737
445  HH bb 44737   HH bb 44737   HH bb 44737   HH bb 44737   HH bb 44737
446  II aa 44737   II aa 44737   II bb 44737   II bb 44737   II bb 44737
447  II bb 44737   II bb 44737   JJ aa 44737   JJ aa 44737   JJ aa 44737
448  JJ aa 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737}
449
450do_execsql_test 1.4.2 {
451  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
452} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
453  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 44737   BB aa 44737
454  BB aa 44737   BB aa 44737   BB aa 44737   BB aa 44737   BB bb 44737
455  BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737
456  CC aa 44737   CC aa 44737   CC aa 44737   CC aa 44737   CC bb 44737
457  CC bb 44737   DD aa 44737   DD aa 44737   DD aa 44737   DD bb 44737
458  DD bb 44737   DD bb 44737   DD bb 44737   EE aa 44737   EE aa 44737
459  EE bb 44737   EE bb 44737   EE bb 44737   FF aa 44737   FF aa 44737
460  FF aa 44737   FF aa 44737   FF bb 44737   FF bb 44737   FF bb 44737
461  FF bb 44737   FF bb 44737   FF bb 44737   GG aa 44737   GG aa 44737
462  GG aa 44737   GG aa 44737   GG bb 44737   GG bb 44737   GG bb 44737
463  GG bb 44737   HH aa 44737   HH aa 44737   HH aa 44737   HH bb 44737
464  HH bb 44737   HH bb 44737   HH bb 44737   HH bb 44737   HH bb 44737
465  II aa 44737   II aa 44737   II bb 44737   II bb 44737   II bb 44737
466  II bb 44737   II bb 44737   JJ aa 44737   JJ aa 44737   JJ aa 44737
467  JJ aa 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737}
468
469do_execsql_test 1.4.3 {
470  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
471} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
472  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
473  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
474  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
475  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
476  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
477  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
478  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
479  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
480  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
481  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
482  JJ bb 73   JJ bb 73   JJ bb 73}
483
484do_execsql_test 1.4.4 {
485  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
486} {AA aa 979   AA aa 979   AA aa 979   AA aa 979   AA bb 979   AA bb 979
487  AA bb 979   AA bb 979   BB aa 979   BB aa 979   BB aa 979   BB aa 979
488  BB aa 979   BB aa 979   BB bb 979   BB bb 979   BB bb 979   BB bb 979
489  BB bb 979   BB bb 979   CC aa 979   CC aa 979   CC aa 979   CC aa 979
490  CC bb 979   CC bb 979   DD aa 979   DD aa 979   DD aa 979   DD bb 979
491  DD bb 979   DD bb 979   DD bb 979   EE aa 979   EE aa 979   EE bb 979
492  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
493  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
494  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
495  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 979
496  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
497  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
498  JJ aa 979   JJ aa 979   JJ aa 979   JJ aa 979   JJ bb 979   JJ bb 979
499  JJ bb 979   JJ bb 979}
500
501do_execsql_test 1.4.5 {
502  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
503} {AA aa 102   AA aa 102   AA aa 102   AA aa 102   AA bb 102   AA bb 102
504  AA bb 102   AA bb 102   BB aa 102   BB aa 102   BB aa 102   BB aa 102
505  BB aa 102   BB aa 102   BB bb 102   BB bb 102   BB bb 102   BB bb 102
506  BB bb 102   BB bb 102   CC aa 102   CC aa 102   CC aa 102   CC aa 102
507  CC bb 102   CC bb 102   DD aa 102   DD aa 102   DD aa 102   DD bb 102
508  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
509  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
510  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
511  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
512  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 102
513  HH bb 102   HH bb 102   HH bb 102   HH bb 102   HH bb 102   II aa 102
514  II aa 102   II bb 102   II bb 102   II bb 102   II bb 102   II bb 102
515  JJ aa 102   JJ aa 102   JJ aa 102   JJ aa 102   JJ bb 102   JJ bb 102
516  JJ bb 102   JJ bb 102}
517
518do_execsql_test 1.4.6 {
519  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
520} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
521  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 43975   BB aa 44077
522  BB aa 44325   BB aa 44338   BB aa 44344   BB aa 44490   BB bb 43897
523  BB bb 43945   BB bb 43951   BB bb 44026   BB bb 44032   BB bb 44104
524  CC aa 43978   CC aa 44130   CC aa 44307   CC aa 44579   CC bb 43915
525  CC bb 44391   DD aa 43892   DD aa 44481   DD aa 44513   DD bb 43778
526  DD bb 43943   DD bb 44021   DD bb 44499   EE aa 43960   EE aa 44624
527  EE bb 43969   EE bb 44108   EE bb 44485   FF aa 44067   FF aa 44070
528  FF aa 44119   FF aa 44529   FF bb 43799   FF bb 43867   FF bb 44011
529  FF bb 44163   FF bb 44442   FF bb 44635   GG aa 44103   GG aa 44257
530  GG aa 44402   GG aa 44589   GG bb 43799   GG bb 43808   GG bb 43893
531  GG bb 44577   HH aa 43758   HH aa 43947   HH aa 44257   HH bb 43774
532  HH bb 44007   HH bb 44054   HH bb 44382   HH bb 44407   HH bb 44604
533  II aa 44085   II aa 44339   II bb 43932   II bb 44066   II bb 44294
534  II bb 44316   II bb 44487   JJ aa 43838   JJ aa 43969   JJ aa 44503
535  JJ aa 44624   JJ bb 43898   JJ bb 44383   JJ bb 44401   JJ bb 44480}
536
537do_execsql_test 1.4.7 {
538  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
539} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
540  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 43975   BB aa 44077
541  BB aa 44325   BB aa 44338   BB aa 44344   BB aa 44490   BB bb 43897
542  BB bb 43945   BB bb 43951   BB bb 44026   BB bb 44032   BB bb 44104
543  CC aa 43978   CC aa 44130   CC aa 44307   CC aa 44579   CC bb 43915
544  CC bb 44391   DD aa 43892   DD aa 44481   DD aa 44513   DD bb 43778
545  DD bb 43943   DD bb 44021   DD bb 44499   EE aa 43960   EE aa 44624
546  EE bb 43969   EE bb 44108   EE bb 44485   FF aa 44067   FF aa 44070
547  FF aa 44119   FF aa 44529   FF bb 43799   FF bb 43867   FF bb 44011
548  FF bb 44163   FF bb 44442   FF bb 44635   GG aa 44103   GG aa 44257
549  GG aa 44402   GG aa 44589   GG bb 43799   GG bb 43808   GG bb 43893
550  GG bb 44577   HH aa 43758   HH aa 43947   HH aa 44257   HH bb 43774
551  HH bb 44007   HH bb 44054   HH bb 44382   HH bb 44407   HH bb 44604
552  II aa 44085   II aa 44339   II bb 43932   II bb 44066   II bb 44294
553  II bb 44316   II bb 44487   JJ aa 43838   JJ aa 43969   JJ aa 44503
554  JJ aa 44624   JJ bb 43898   JJ bb 44383   JJ bb 44401   JJ bb 44480}
555
556do_execsql_test 1.5.1 {
557  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
558} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
559  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
560  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
561  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
562  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
563  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
564  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
565  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
566  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
567  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
568  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
569  JJ bb {}   JJ bb {}   JJ bb {}}
570
571do_execsql_test 1.5.2 {
572  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
573} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
574  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
575  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
576  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
577  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
578  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
579  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
580  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
581  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
582  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
583  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
584  JJ bb {}   JJ bb {}   JJ bb {}}
585
586do_execsql_test 1.5.3 {
587  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
588} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
589  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
590  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
591  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
592  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
593  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
594  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
595  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
596  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
597  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
598  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
599  JJ bb 73   JJ bb 73   JJ bb 73}
600
601do_execsql_test 1.5.4 {
602  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
603} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
604  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
605  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
606  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
607  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
608  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
609  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
610  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
611  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
612  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
613  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
614  JJ bb {}   JJ bb {}   JJ bb {}}
615
616do_execsql_test 1.5.5 {
617  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
618} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
619  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
620  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
621  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
622  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
623  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
624  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
625  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
626  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
627  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
628  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
629  JJ bb {}   JJ bb {}   JJ bb {}}
630
631do_execsql_test 1.5.6 {
632  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
633} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
634  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
635  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
636  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
637  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
638  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
639  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
640  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
641  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
642  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
643  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
644  JJ bb {}   JJ bb {}   JJ bb {}}
645
646do_execsql_test 1.5.7 {
647  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
648} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
649  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
650  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
651  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
652  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
653  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
654  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
655  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
656  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
657  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
658  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
659  JJ bb {}   JJ bb {}   JJ bb {}}
660
661do_execsql_test 1.6.1 {
662  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
663} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
664  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
665  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
666  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
667  CC bb 12025   CC bb 12025   DD aa 10462   DD aa 10462   DD aa 10462
668  DD bb 10462   DD bb 10462   DD bb 10462   DD bb 10462   EE aa 7154
669  EE aa 7154   EE bb 7154   EE bb 7154   EE bb 7154   FF aa 6571   FF aa 6571
670  FF aa 6571   FF aa 6571   FF bb 6571   FF bb 6571   FF bb 6571   FF bb 6571
671  FF bb 6571   FF bb 6571   GG aa 8207   GG aa 8207   GG aa 8207   GG aa 8207
672  GG bb 8207   GG bb 8207   GG bb 8207   GG bb 8207   HH aa 10136
673  HH aa 10136   HH aa 10136   HH bb 10136   HH bb 10136   HH bb 10136
674  HH bb 10136   HH bb 10136   HH bb 10136   II aa 9911   II aa 9911
675  II bb 9911   II bb 9911   II bb 9911   II bb 9911   II bb 9911   JJ aa 9083
676  JJ aa 9083   JJ aa 9083   JJ aa 9083   JJ bb 9083   JJ bb 9083   JJ bb 9083
677  JJ bb 9083}
678
679do_execsql_test 1.6.2 {
680  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
681} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
682  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
683  BB aa 4685   BB aa 4685   BB bb 5251   BB bb 5251   BB bb 5251   BB bb 5251
684  BB bb 5251   BB bb 5251   CC aa 7340   CC aa 7340   CC aa 7340   CC aa 7340
685  CC bb 6421   CC bb 6421   DD aa 3122   DD aa 3122   DD aa 3122   DD bb 2493
686  DD bb 2493   DD bb 2493   DD bb 2493   EE aa 4032   EE aa 4032   EE bb 3597
687  EE bb 3597   EE bb 3597   FF aa 2539   FF aa 2539   FF aa 2539   FF aa 2539
688  FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812
689  GG aa 5668   GG aa 5668   GG aa 5668   GG aa 5668   GG bb 5102   GG bb 5102
690  GG bb 5102   GG bb 5102   HH aa 4468   HH aa 4468   HH aa 4468   HH bb 5120
691  HH bb 5120   HH bb 5120   HH bb 5120   HH bb 5120   HH bb 5120   II aa 5443
692  II aa 5443   II bb 4244   II bb 4244   II bb 4244   II bb 4244   II bb 4244
693  JJ aa 3640   JJ aa 3640   JJ aa 3640   JJ aa 3640   JJ bb 4604   JJ bb 4604
694  JJ bb 4604   JJ bb 4604}
695
696do_execsql_test 1.6.3 {
697  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
698} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
699  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
700  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
701  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
702  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
703  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
704  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
705  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
706  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
707  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
708  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
709  JJ bb 73   JJ bb 73   JJ bb 73}
710
711do_execsql_test 1.6.4 {
712  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
713} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 934   AA bb 934
714  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
715  BB aa 934   BB aa 934   BB bb 870   BB bb 870   BB bb 870   BB bb 870
716  BB bb 870   BB bb 870   CC aa 840   CC aa 840   CC aa 840   CC aa 840
717  CC bb 840   CC bb 840   DD aa 822   DD aa 822   DD aa 822   DD bb 845
718  DD bb 845   DD bb 845   DD bb 845   EE aa 959   EE aa 959   EE bb 959
719  EE bb 959   EE bb 959   FF aa 777   FF aa 777   FF aa 777   FF aa 777
720  FF bb 768   FF bb 768   FF bb 768   FF bb 768   FF bb 768   FF bb 768
721  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 938   GG bb 938
722  GG bb 938   GG bb 938   HH aa 938   HH aa 938   HH aa 938   HH bb 979
723  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
724  II aa 979   II bb 963   II bb 963   II bb 963   II bb 963   II bb 963
725  JJ aa 805   JJ aa 805   JJ aa 805   JJ aa 805   JJ bb 899   JJ bb 899
726  JJ bb 899   JJ bb 899}
727
728do_execsql_test 1.6.5 {
729  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
730} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 223   AA bb 223
731  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
732  BB aa 223   BB aa 223   BB bb 247   BB bb 247   BB bb 247   BB bb 247
733  BB bb 247   BB bb 247   CC aa 247   CC aa 247   CC aa 247   CC aa 247
734  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 224
735  DD bb 224   DD bb 224   DD bb 224   EE aa 224   EE aa 224   EE bb 113
736  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
737  FF bb 208   FF bb 208   FF bb 208   FF bb 208   FF bb 208   FF bb 208
738  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
739  GG bb 102   GG bb 102   HH aa 148   HH aa 148   HH aa 148   HH bb 160
740  HH bb 160   HH bb 160   HH bb 160   HH bb 160   HH bb 160   II aa 133
741  II aa 133   II bb 133   II bb 133   II bb 133   II bb 133   II bb 133
742  JJ aa 250   JJ aa 250   JJ aa 250   JJ aa 250   JJ bb 113   JJ bb 113
743  JJ bb 113   JJ bb 113}
744
745do_execsql_test 1.6.6 {
746  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
747} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
748  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
749  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
750  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
751  CC bb 12025   CC bb 12025   DD aa 10462   DD aa 10462   DD aa 10462
752  DD bb 10462   DD bb 10462   DD bb 10462   DD bb 10462   EE aa 7154
753  EE aa 7154   EE bb 7154   EE bb 7154   EE bb 7154   FF aa 6571   FF aa 6571
754  FF aa 6571   FF aa 6571   FF bb 6571   FF bb 6571   FF bb 6571   FF bb 6571
755  FF bb 6571   FF bb 6571   GG aa 8207   GG aa 8207   GG aa 8207   GG aa 8207
756  GG bb 8207   GG bb 8207   GG bb 8207   GG bb 8207   HH aa 10136
757  HH aa 10136   HH aa 10136   HH bb 10136   HH bb 10136   HH bb 10136
758  HH bb 10136   HH bb 10136   HH bb 10136   II aa 9911   II aa 9911
759  II bb 9911   II bb 9911   II bb 9911   II bb 9911   II bb 9911   JJ aa 9083
760  JJ aa 9083   JJ aa 9083   JJ aa 9083   JJ bb 9083   JJ bb 9083   JJ bb 9083
761  JJ bb 9083}
762
763do_execsql_test 1.6.7 {
764  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
765} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
766  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
767  BB aa 4685   BB aa 4685   BB bb 5251   BB bb 5251   BB bb 5251   BB bb 5251
768  BB bb 5251   BB bb 5251   CC aa 7340   CC aa 7340   CC aa 7340   CC aa 7340
769  CC bb 6421   CC bb 6421   DD aa 3122   DD aa 3122   DD aa 3122   DD bb 2493
770  DD bb 2493   DD bb 2493   DD bb 2493   EE aa 4032   EE aa 4032   EE bb 3597
771  EE bb 3597   EE bb 3597   FF aa 2539   FF aa 2539   FF aa 2539   FF aa 2539
772  FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812
773  GG aa 5668   GG aa 5668   GG aa 5668   GG aa 5668   GG bb 5102   GG bb 5102
774  GG bb 5102   GG bb 5102   HH aa 4468   HH aa 4468   HH aa 4468   HH bb 5120
775  HH bb 5120   HH bb 5120   HH bb 5120   HH bb 5120   HH bb 5120   II aa 5443
776  II aa 5443   II bb 4244   II bb 4244   II bb 4244   II bb 4244   II bb 4244
777  JJ aa 3640   JJ aa 3640   JJ aa 3640   JJ aa 3640   JJ bb 4604   JJ bb 4604
778  JJ bb 4604   JJ bb 4604}
779
780do_execsql_test 1.7.1 {
781  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
782} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
783  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
784  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
785  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
786  CC bb 12025   CC bb 12025   DD aa 15147   DD aa 15147   DD aa 15147
787  DD bb 15147   DD bb 15147   DD bb 15147   DD bb 15147   EE aa 14494
788  EE aa 14494   EE bb 14494   EE bb 14494   EE bb 14494   FF aa 9693
789  FF aa 9693   FF aa 9693   FF aa 9693   FF bb 9693   FF bb 9693   FF bb 9693
790  FF bb 9693   FF bb 9693   FF bb 9693   GG aa 12239   GG aa 12239
791  GG aa 12239   GG aa 12239   GG bb 12239   GG bb 12239   GG bb 12239
792  GG bb 12239   HH aa 12675   HH aa 12675   HH aa 12675   HH bb 12675
793  HH bb 12675   HH bb 12675   HH bb 12675   HH bb 12675   HH bb 12675
794  II aa 15579   II aa 15579   II bb 15579   II bb 15579   II bb 15579
795  II bb 15579   II bb 15579   JJ aa 13551   JJ aa 13551   JJ aa 13551
796  JJ aa 13551   JJ bb 13551   JJ bb 13551   JJ bb 13551   JJ bb 13551}
797
798do_execsql_test 1.7.2 {
799  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
800} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
801  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
802  BB aa 4685   BB aa 4685   BB bb 7558   BB bb 7558   BB bb 7558   BB bb 7558
803  BB bb 7558   BB bb 7558   CC aa 9718   CC aa 9718   CC aa 9718   CC aa 9718
804  CC bb 9294   CC bb 9294   DD aa 7589   DD aa 7589   DD aa 7589   DD bb 4447
805  DD bb 4447   DD bb 4447   DD bb 4447   EE aa 5200   EE aa 5200   EE bb 4922
806  EE bb 4922   EE bb 4922   FF aa 5246   FF aa 5246   FF aa 5246   FF aa 5246
807  FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702
808  GG aa 7317   GG aa 7317   GG aa 7317   GG aa 7317   GG bb 7265   GG bb 7265
809  GG bb 7265   GG bb 7265   HH aa 7973   HH aa 7973   HH aa 7973   HH bb 6717
810  HH bb 6717   HH bb 6717   HH bb 6717   HH bb 6717   HH bb 6717   II aa 8314
811  II aa 8314   II bb 6493   II bb 6493   II bb 6493   II bb 6493   II bb 6493
812  JJ aa 6834   JJ aa 6834   JJ aa 6834   JJ aa 6834   JJ bb 5654   JJ bb 5654
813  JJ bb 5654   JJ bb 5654}
814
815do_execsql_test 1.7.3 {
816  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
817} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
818  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
819  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
820  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
821  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
822  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
823  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
824  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
825  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
826  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
827  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
828  JJ bb 73   JJ bb 73   JJ bb 73}
829
830do_execsql_test 1.7.4 {
831  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
832} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 934   AA bb 934
833  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
834  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
835  BB bb 934   BB bb 934   CC aa 870   CC aa 870   CC aa 870   CC aa 870
836  CC bb 840   CC bb 840   DD aa 840   DD aa 840   DD aa 840   DD bb 845
837  DD bb 845   DD bb 845   DD bb 845   EE aa 959   EE aa 959   EE bb 959
838  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
839  FF bb 777   FF bb 777   FF bb 777   FF bb 777   FF bb 777   FF bb 777
840  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 938   GG bb 938
841  GG bb 938   GG bb 938   HH aa 938   HH aa 938   HH aa 938   HH bb 979
842  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
843  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
844  JJ aa 963   JJ aa 963   JJ aa 963   JJ aa 963   JJ bb 899   JJ bb 899
845  JJ bb 899   JJ bb 899}
846
847do_execsql_test 1.7.5 {
848  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
849} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 223   AA bb 223
850  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
851  BB aa 223   BB aa 223   BB bb 223   BB bb 223   BB bb 223   BB bb 223
852  BB bb 223   BB bb 223   CC aa 247   CC aa 247   CC aa 247   CC aa 247
853  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 158
854  DD bb 158   DD bb 158   DD bb 158   EE aa 224   EE aa 224   EE bb 113
855  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
856  FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113
857  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
858  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 148
859  HH bb 148   HH bb 148   HH bb 148   HH bb 148   HH bb 148   II aa 133
860  II aa 133   II bb 133   II bb 133   II bb 133   II bb 133   II bb 133
861  JJ aa 133   JJ aa 133   JJ aa 133   JJ aa 133   JJ bb 113   JJ bb 113
862  JJ bb 113   JJ bb 113}
863
864do_execsql_test 1.7.6 {
865  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
866} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
867  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
868  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
869  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
870  CC bb 12025   CC bb 12025   DD aa 15147   DD aa 15147   DD aa 15147
871  DD bb 15147   DD bb 15147   DD bb 15147   DD bb 15147   EE aa 14494
872  EE aa 14494   EE bb 14494   EE bb 14494   EE bb 14494   FF aa 9693
873  FF aa 9693   FF aa 9693   FF aa 9693   FF bb 9693   FF bb 9693   FF bb 9693
874  FF bb 9693   FF bb 9693   FF bb 9693   GG aa 12239   GG aa 12239
875  GG aa 12239   GG aa 12239   GG bb 12239   GG bb 12239   GG bb 12239
876  GG bb 12239   HH aa 12675   HH aa 12675   HH aa 12675   HH bb 12675
877  HH bb 12675   HH bb 12675   HH bb 12675   HH bb 12675   HH bb 12675
878  II aa 15579   II aa 15579   II bb 15579   II bb 15579   II bb 15579
879  II bb 15579   II bb 15579   JJ aa 13551   JJ aa 13551   JJ aa 13551
880  JJ aa 13551   JJ bb 13551   JJ bb 13551   JJ bb 13551   JJ bb 13551}
881
882do_execsql_test 1.7.7 {
883  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
884} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
885  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
886  BB aa 4685   BB aa 4685   BB bb 7558   BB bb 7558   BB bb 7558   BB bb 7558
887  BB bb 7558   BB bb 7558   CC aa 9718   CC aa 9718   CC aa 9718   CC aa 9718
888  CC bb 9294   CC bb 9294   DD aa 7589   DD aa 7589   DD aa 7589   DD bb 4447
889  DD bb 4447   DD bb 4447   DD bb 4447   EE aa 5200   EE aa 5200   EE bb 4922
890  EE bb 4922   EE bb 4922   FF aa 5246   FF aa 5246   FF aa 5246   FF aa 5246
891  FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702
892  GG aa 7317   GG aa 7317   GG aa 7317   GG aa 7317   GG bb 7265   GG bb 7265
893  GG bb 7265   GG bb 7265   HH aa 7973   HH aa 7973   HH aa 7973   HH bb 6717
894  HH bb 6717   HH bb 6717   HH bb 6717   HH bb 6717   HH bb 6717   II aa 8314
895  II aa 8314   II bb 6493   II bb 6493   II bb 6493   II bb 6493   II bb 6493
896  JJ aa 6834   JJ aa 6834   JJ aa 6834   JJ aa 6834   JJ bb 5654   JJ bb 5654
897  JJ bb 5654   JJ bb 5654}
898
899do_execsql_test 1.8.1 {
900  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
901} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
902  AA bb 4685   AA bb 4685   BB aa 12025   BB aa 12025   BB aa 12025
903  BB aa 12025   BB aa 12025   BB aa 12025   BB bb 12025   BB bb 12025
904  BB bb 12025   BB bb 12025   BB bb 12025   BB bb 12025   CC aa 15147
905  CC aa 15147   CC aa 15147   CC aa 15147   CC bb 15147   CC bb 15147
906  DD aa 19179   DD aa 19179   DD aa 19179   DD bb 19179   DD bb 19179
907  DD bb 19179   DD bb 19179   EE aa 17033   EE aa 17033   EE bb 17033
908  EE bb 17033   EE bb 17033   FF aa 15361   FF aa 15361   FF aa 15361
909  FF aa 15361   FF bb 15361   FF bb 15361   FF bb 15361   FF bb 15361
910  FF bb 15361   FF bb 15361   GG aa 16707   GG aa 16707   GG aa 16707
911  GG aa 16707   GG bb 16707   GG bb 16707   GG bb 16707   GG bb 16707
912  HH aa 18118   HH aa 18118   HH aa 18118   HH bb 18118   HH bb 18118
913  HH bb 18118   HH bb 18118   HH bb 18118   HH bb 18118   II aa 19219
914  II aa 19219   II bb 19219   II bb 19219   II bb 19219   II bb 19219
915  II bb 19219   JJ aa 17351   JJ aa 17351   JJ aa 17351   JJ aa 17351
916  JJ bb 17351   JJ bb 17351   JJ bb 17351   JJ bb 17351}
917
918do_execsql_test 1.8.2 {
919  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
920} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 4685   AA bb 4685
921  AA bb 4685   AA bb 4685   BB aa 7558   BB aa 7558   BB aa 7558   BB aa 7558
922  BB aa 7558   BB aa 7558   BB bb 12025   BB bb 12025   BB bb 12025
923  BB bb 12025   BB bb 12025   BB bb 12025   CC aa 11672   CC aa 11672
924  CC aa 11672   CC aa 11672   CC bb 10462   CC bb 10462   DD aa 8914
925  DD aa 8914   DD aa 8914   DD bb 7154   DD bb 7154   DD bb 7154   DD bb 7154
926  EE aa 6090   EE aa 6090   EE bb 6571   EE bb 6571   EE bb 6571   FF aa 7409
927  FF aa 7409   FF aa 7409   FF aa 7409   FF bb 8207   FF bb 8207   FF bb 8207
928  FF bb 8207   FF bb 8207   FF bb 8207   GG aa 8914   GG aa 8914   GG aa 8914
929  GG aa 8914   GG bb 10136   GG bb 10136   GG bb 10136   GG bb 10136
930  HH aa 10222   HH aa 10222   HH aa 10222   HH bb 9911   HH bb 9911
931  HH bb 9911   HH bb 9911   HH bb 9911   HH bb 9911   II aa 9364   II aa 9364
932  II bb 9083   II bb 9083   II bb 9083   II bb 9083   II bb 9083   JJ aa 8848
933  JJ aa 8848   JJ aa 8848   JJ aa 8848   JJ bb 7440   JJ bb 7440   JJ bb 7440
934  JJ bb 7440}
935
936do_execsql_test 1.8.3 {
937  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
938} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
939  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
940  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
941  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
942  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
943  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
944  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
945  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
946  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
947  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
948  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
949  JJ bb 73   JJ bb 73   JJ bb 73}
950
951do_execsql_test 1.8.4 {
952  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
953} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 934   AA bb 934
954  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
955  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
956  BB bb 934   BB bb 934   CC aa 870   CC aa 870   CC aa 870   CC aa 870
957  CC bb 840   CC bb 840   DD aa 845   DD aa 845   DD aa 845   DD bb 959
958  DD bb 959   DD bb 959   DD bb 959   EE aa 959   EE aa 959   EE bb 959
959  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
960  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
961  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 938   GG bb 938
962  GG bb 938   GG bb 938   HH aa 979   HH aa 979   HH aa 979   HH bb 979
963  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
964  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
965  JJ aa 963   JJ aa 963   JJ aa 963   JJ aa 963   JJ bb 899   JJ bb 899
966  JJ bb 899   JJ bb 899}
967
968do_execsql_test 1.8.5 {
969  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
970} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 223   AA bb 223
971  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
972  BB aa 223   BB aa 223   BB bb 223   BB bb 223   BB bb 223   BB bb 223
973  BB bb 223   BB bb 223   CC aa 158   CC aa 158   CC aa 158   CC aa 158
974  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 158
975  DD bb 158   DD bb 158   DD bb 158   EE aa 113   EE aa 113   EE bb 113
976  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
977  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
978  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
979  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 133
980  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 133
981  II aa 133   II bb 133   II bb 133   II bb 133   II bb 133   II bb 133
982  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 113   JJ bb 113
983  JJ bb 113   JJ bb 113}
984
985do_execsql_test 1.8.6 {
986  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
987} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
988  AA bb 4113   AA bb 4376   BB aa 11263   BB aa 11365   BB aa 11613
989  BB aa 11626   BB aa 11632   BB aa 11778   BB bb 11185   BB bb 11233
990  BB bb 11239   BB bb 11314   BB bb 11320   BB bb 11392   CC aa 14388
991  CC aa 14540   CC aa 14717   CC aa 14989   CC bb 14325   CC bb 14801
992  DD aa 18334   DD aa 18923   DD aa 18955   DD bb 18220   DD bb 18385
993  DD bb 18463   DD bb 18941   EE aa 16256   EE aa 16920   EE bb 16265
994  EE bb 16404   EE bb 16781   FF aa 14691   FF aa 14694   FF aa 14743
995  FF aa 15153   FF bb 14423   FF bb 14491   FF bb 14635   FF bb 14787
996  FF bb 15066   FF bb 15259   GG aa 16073   GG aa 16227   GG aa 16372
997  GG aa 16559   GG bb 15769   GG bb 15778   GG bb 15863   GG bb 16547
998  HH aa 17139   HH aa 17328   HH aa 17638   HH bb 17155   HH bb 17388
999  HH bb 17435   HH bb 17763   HH bb 17788   HH bb 17985   II aa 18567
1000  II aa 18821   II bb 18414   II bb 18548   II bb 18776   II bb 18798
1001  II bb 18969   JJ aa 16452   JJ aa 16583   JJ aa 17117   JJ aa 17238
1002  JJ bb 16512   JJ bb 16997   JJ bb 17015   JJ bb 17094}
1003
1004do_execsql_test 1.8.7 {
1005  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1006} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 3815   AA bb 4058
1007  AA bb 4113   AA bb 4376   BB aa 6796   BB aa 6898   BB aa 7146   BB aa 7159
1008  BB aa 7165   BB aa 7311   BB bb 11185   BB bb 11233   BB bb 11239
1009  BB bb 11314   BB bb 11320   BB bb 11392   CC aa 10913   CC aa 11065
1010  CC aa 11242   CC aa 11514   CC bb 9640   CC bb 10116   DD aa 8069
1011  DD aa 8658   DD aa 8690   DD bb 6195   DD bb 6360   DD bb 6438   DD bb 6916
1012  EE aa 5313   EE aa 5977   EE bb 5803   EE bb 5942   EE bb 6319   FF aa 6739
1013  FF aa 6742   FF aa 6791   FF aa 7201   FF bb 7269   FF bb 7337   FF bb 7481
1014  FF bb 7633   FF bb 7912   FF bb 8105   GG aa 8280   GG aa 8434   GG aa 8579
1015  GG aa 8766   GG bb 9198   GG bb 9207   GG bb 9292   GG bb 9976   HH aa 9243
1016  HH aa 9432   HH aa 9742   HH bb 8948   HH bb 9181   HH bb 9228   HH bb 9556
1017  HH bb 9581   HH bb 9778   II aa 8712   II aa 8966   II bb 8278   II bb 8412
1018  II bb 8640   II bb 8662   II bb 8833   JJ aa 7949   JJ aa 8080   JJ aa 8614
1019  JJ aa 8735   JJ bb 6601   JJ bb 7086   JJ bb 7104   JJ bb 7183}
1020
1021do_execsql_test 1.9.1 {
1022  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
1023} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
1024  AA bb 4685   AA bb 4685   BB aa 12025   BB aa 12025   BB aa 12025
1025  BB aa 12025   BB aa 12025   BB aa 12025   BB bb 12025   BB bb 12025
1026  BB bb 12025   BB bb 12025   BB bb 12025   BB bb 12025   CC aa 15147
1027  CC aa 15147   CC aa 15147   CC aa 15147   CC bb 15147   CC bb 15147
1028  DD aa 14494   DD aa 14494   DD aa 14494   DD bb 14494   DD bb 14494
1029  DD bb 14494   DD bb 14494   EE aa 9693   EE aa 9693   EE bb 9693
1030  EE bb 9693   EE bb 9693   FF aa 12239   FF aa 12239   FF aa 12239
1031  FF aa 12239   FF bb 12239   FF bb 12239   FF bb 12239   FF bb 12239
1032  FF bb 12239   FF bb 12239   GG aa 12675   GG aa 12675   GG aa 12675
1033  GG aa 12675   GG bb 12675   GG bb 12675   GG bb 12675   GG bb 12675
1034  HH aa 15579   HH aa 15579   HH aa 15579   HH bb 15579   HH bb 15579
1035  HH bb 15579   HH bb 15579   HH bb 15579   HH bb 15579   II aa 13551
1036  II aa 13551   II bb 13551   II bb 13551   II bb 13551   II bb 13551
1037  II bb 13551   JJ aa 12883   JJ aa 12883   JJ aa 12883   JJ aa 12883
1038  JJ bb 12883   JJ bb 12883   JJ bb 12883   JJ bb 12883}
1039
1040do_execsql_test 1.9.2 {
1041  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
1042} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 4685   AA bb 4685
1043  AA bb 4685   AA bb 4685   BB aa 7558   BB aa 7558   BB aa 7558   BB aa 7558
1044  BB aa 7558   BB aa 7558   BB bb 9718   BB bb 9718   BB bb 9718   BB bb 9718
1045  BB bb 9718   BB bb 9718   CC aa 9294   CC aa 9294   CC aa 9294   CC aa 9294
1046  CC bb 7589   CC bb 7589   DD aa 4447   DD aa 4447   DD aa 4447   DD bb 5200
1047  DD bb 5200   DD bb 5200   DD bb 5200   EE aa 4922   EE aa 4922   EE bb 5246
1048  EE bb 5246   EE bb 5246   FF aa 4702   FF aa 4702   FF aa 4702   FF aa 4702
1049  FF bb 7317   FF bb 7317   FF bb 7317   FF bb 7317   FF bb 7317   FF bb 7317
1050  GG aa 7265   GG aa 7265   GG aa 7265   GG aa 7265   GG bb 7973   GG bb 7973
1051  GG bb 7973   GG bb 7973   HH aa 6717   HH aa 6717   HH aa 6717   HH bb 8314
1052  HH bb 8314   HH bb 8314   HH bb 8314   HH bb 8314   HH bb 8314   II aa 6493
1053  II aa 6493   II bb 6834   II bb 6834   II bb 6834   II bb 6834   II bb 6834
1054  JJ aa 5654   JJ aa 5654   JJ aa 5654   JJ aa 5654   JJ bb 6390   JJ bb 6390
1055  JJ bb 6390   JJ bb 6390}
1056
1057do_execsql_test 1.9.3 {
1058  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
1059} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1060  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1061  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1062  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1063  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1064  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1065  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1066  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1067  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1068  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1069  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1070  JJ bb 73   JJ bb 73   JJ bb 73}
1071
1072do_execsql_test 1.9.4 {
1073  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
1074} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 934   AA bb 934
1075  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
1076  BB aa 934   BB aa 934   BB bb 870   BB bb 870   BB bb 870   BB bb 870
1077  BB bb 870   BB bb 870   CC aa 840   CC aa 840   CC aa 840   CC aa 840
1078  CC bb 840   CC bb 840   DD aa 845   DD aa 845   DD aa 845   DD bb 959
1079  DD bb 959   DD bb 959   DD bb 959   EE aa 959   EE aa 959   EE bb 959
1080  EE bb 959   EE bb 959   FF aa 777   FF aa 777   FF aa 777   FF aa 777
1081  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
1082  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 938   GG bb 938
1083  GG bb 938   GG bb 938   HH aa 979   HH aa 979   HH aa 979   HH bb 979
1084  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
1085  II aa 979   II bb 963   II bb 963   II bb 963   II bb 963   II bb 963
1086  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 899   JJ bb 899
1087  JJ bb 899   JJ bb 899}
1088
1089do_execsql_test 1.9.5 {
1090  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
1091} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 223   AA bb 223
1092  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
1093  BB aa 223   BB aa 223   BB bb 247   BB bb 247   BB bb 247   BB bb 247
1094  BB bb 247   BB bb 247   CC aa 158   CC aa 158   CC aa 158   CC aa 158
1095  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 224
1096  DD bb 224   DD bb 224   DD bb 224   EE aa 113   EE aa 113   EE bb 113
1097  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
1098  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1099  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
1100  GG bb 102   GG bb 102   HH aa 148   HH aa 148   HH aa 148   HH bb 133
1101  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 133
1102  II aa 133   II bb 133   II bb 133   II bb 133   II bb 133   II bb 133
1103  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 113   JJ bb 113
1104  JJ bb 113   JJ bb 113}
1105
1106do_execsql_test 1.9.6 {
1107  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1108} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
1109  AA bb 4113   AA bb 4376   BB aa 11263   BB aa 11365   BB aa 11613
1110  BB aa 11626   BB aa 11632   BB aa 11778   BB bb 11185   BB bb 11233
1111  BB bb 11239   BB bb 11314   BB bb 11320   BB bb 11392   CC aa 14388
1112  CC aa 14540   CC aa 14717   CC aa 14989   CC bb 14325   CC bb 14801
1113  DD aa 13649   DD aa 14238   DD aa 14270   DD bb 13535   DD bb 13700
1114  DD bb 13778   DD bb 14256   EE aa 8916   EE aa 9580   EE bb 8925
1115  EE bb 9064   EE bb 9441   FF aa 11569   FF aa 11572   FF aa 11621
1116  FF aa 12031   FF bb 11301   FF bb 11369   FF bb 11513   FF bb 11665
1117  FF bb 11944   FF bb 12137   GG aa 12041   GG aa 12195   GG aa 12340
1118  GG aa 12527   GG bb 11737   GG bb 11746   GG bb 11831   GG bb 12515
1119  HH aa 14600   HH aa 14789   HH aa 15099   HH bb 14616   HH bb 14849
1120  HH bb 14896   HH bb 15224   HH bb 15249   HH bb 15446   II aa 12899
1121  II aa 13153   II bb 12746   II bb 12880   II bb 13108   II bb 13130
1122  II bb 13301   JJ aa 11984   JJ aa 12115   JJ aa 12649   JJ aa 12770
1123  JJ bb 12044   JJ bb 12529   JJ bb 12547   JJ bb 12626}
1124
1125do_execsql_test 1.9.7 {
1126  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1127} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 3815   AA bb 4058
1128  AA bb 4113   AA bb 4376   BB aa 6796   BB aa 6898   BB aa 7146   BB aa 7159
1129  BB aa 7165   BB aa 7311   BB bb 8878   BB bb 8926   BB bb 8932   BB bb 9007
1130  BB bb 9013   BB bb 9085   CC aa 8535   CC aa 8687   CC aa 8864   CC aa 9136
1131  CC bb 6767   CC bb 7243   DD aa 3602   DD aa 4191   DD aa 4223   DD bb 4241
1132  DD bb 4406   DD bb 4484   DD bb 4962   EE aa 4145   EE aa 4809   EE bb 4478
1133  EE bb 4617   EE bb 4994   FF aa 4032   FF aa 4035   FF aa 4084   FF aa 4494
1134  FF bb 6379   FF bb 6447   FF bb 6591   FF bb 6743   FF bb 7022   FF bb 7215
1135  GG aa 6631   GG aa 6785   GG aa 6930   GG aa 7117   GG bb 7035   GG bb 7044
1136  GG bb 7129   GG bb 7813   HH aa 5738   HH aa 5927   HH aa 6237   HH bb 7351
1137  HH bb 7584   HH bb 7631   HH bb 7959   HH bb 7984   HH bb 8181   II aa 5841
1138  II aa 6095   II bb 6029   II bb 6163   II bb 6391   II bb 6413   II bb 6584
1139  JJ aa 4755   JJ aa 4886   JJ aa 5420   JJ aa 5541   JJ bb 5551   JJ bb 6036
1140  JJ bb 6054   JJ bb 6133}
1141
1142do_execsql_test 1.10.1 {
1143  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1144} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
1145  AA bb 4685   AA bb 4685   BB aa 12025   BB aa 12025   BB aa 12025
1146  BB aa 12025   BB aa 12025   BB aa 12025   BB bb 12025   BB bb 12025
1147  BB bb 12025   BB bb 12025   BB bb 12025   BB bb 12025   CC aa 15147
1148  CC aa 15147   CC aa 15147   CC aa 15147   CC bb 15147   CC bb 15147
1149  DD aa 19179   DD aa 19179   DD aa 19179   DD bb 19179   DD bb 19179
1150  DD bb 19179   DD bb 19179   EE aa 17033   EE aa 17033   EE bb 17033
1151  EE bb 17033   EE bb 17033   FF aa 15361   FF aa 15361   FF aa 15361
1152  FF aa 15361   FF bb 15361   FF bb 15361   FF bb 15361   FF bb 15361
1153  FF bb 15361   FF bb 15361   GG aa 16707   GG aa 16707   GG aa 16707
1154  GG aa 16707   GG bb 16707   GG bb 16707   GG bb 16707   GG bb 16707
1155  HH aa 18118   HH aa 18118   HH aa 18118   HH bb 18118   HH bb 18118
1156  HH bb 18118   HH bb 18118   HH bb 18118   HH bb 18118   II aa 19219
1157  II aa 19219   II bb 19219   II bb 19219   II bb 19219   II bb 19219
1158  II bb 19219   JJ aa 17351   JJ aa 17351   JJ aa 17351   JJ aa 17351
1159  JJ bb 17351   JJ bb 17351   JJ bb 17351   JJ bb 17351}
1160
1161do_execsql_test 1.10.2 {
1162  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1163} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 4685   AA bb 4685
1164  AA bb 4685   AA bb 4685   BB aa 7558   BB aa 7558   BB aa 7558   BB aa 7558
1165  BB aa 7558   BB aa 7558   BB bb 12025   BB bb 12025   BB bb 12025
1166  BB bb 12025   BB bb 12025   BB bb 12025   CC aa 11672   CC aa 11672
1167  CC aa 11672   CC aa 11672   CC bb 10462   CC bb 10462   DD aa 8914
1168  DD aa 8914   DD aa 8914   DD bb 7154   DD bb 7154   DD bb 7154   DD bb 7154
1169  EE aa 6090   EE aa 6090   EE bb 6571   EE bb 6571   EE bb 6571   FF aa 7409
1170  FF aa 7409   FF aa 7409   FF aa 7409   FF bb 8207   FF bb 8207   FF bb 8207
1171  FF bb 8207   FF bb 8207   FF bb 8207   GG aa 8914   GG aa 8914   GG aa 8914
1172  GG aa 8914   GG bb 10136   GG bb 10136   GG bb 10136   GG bb 10136
1173  HH aa 10222   HH aa 10222   HH aa 10222   HH bb 9911   HH bb 9911
1174  HH bb 9911   HH bb 9911   HH bb 9911   HH bb 9911   II aa 9364   II aa 9364
1175  II bb 9083   II bb 9083   II bb 9083   II bb 9083   II bb 9083   JJ aa 8848
1176  JJ aa 8848   JJ aa 8848   JJ aa 8848   JJ bb 7440   JJ bb 7440   JJ bb 7440
1177  JJ bb 7440}
1178
1179do_execsql_test 1.10.3 {
1180  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1181} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1182  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1183  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1184  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1185  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1186  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1187  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1188  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1189  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1190  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1191  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1192  JJ bb 73   JJ bb 73   JJ bb 73}
1193
1194do_execsql_test 1.10.4 {
1195  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1196} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 934   AA bb 934
1197  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
1198  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
1199  BB bb 934   BB bb 934   CC aa 870   CC aa 870   CC aa 870   CC aa 870
1200  CC bb 840   CC bb 840   DD aa 845   DD aa 845   DD aa 845   DD bb 959
1201  DD bb 959   DD bb 959   DD bb 959   EE aa 959   EE aa 959   EE bb 959
1202  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
1203  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
1204  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 938   GG bb 938
1205  GG bb 938   GG bb 938   HH aa 979   HH aa 979   HH aa 979   HH bb 979
1206  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
1207  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
1208  JJ aa 963   JJ aa 963   JJ aa 963   JJ aa 963   JJ bb 899   JJ bb 899
1209  JJ bb 899   JJ bb 899}
1210
1211do_execsql_test 1.10.5 {
1212  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1213} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 223   AA bb 223
1214  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
1215  BB aa 223   BB aa 223   BB bb 223   BB bb 223   BB bb 223   BB bb 223
1216  BB bb 223   BB bb 223   CC aa 158   CC aa 158   CC aa 158   CC aa 158
1217  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 158
1218  DD bb 158   DD bb 158   DD bb 158   EE aa 113   EE aa 113   EE bb 113
1219  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
1220  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1221  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
1222  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 133
1223  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 133
1224  II aa 133   II bb 133   II bb 133   II bb 133   II bb 133   II bb 133
1225  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 113   JJ bb 113
1226  JJ bb 113   JJ bb 113}
1227
1228do_execsql_test 1.10.6 {
1229  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1230} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
1231  AA bb 4113   AA bb 4376   BB aa 11263   BB aa 11365   BB aa 11613
1232  BB aa 11626   BB aa 11632   BB aa 11778   BB bb 11185   BB bb 11233
1233  BB bb 11239   BB bb 11314   BB bb 11320   BB bb 11392   CC aa 14388
1234  CC aa 14540   CC aa 14717   CC aa 14989   CC bb 14325   CC bb 14801
1235  DD aa 18334   DD aa 18923   DD aa 18955   DD bb 18220   DD bb 18385
1236  DD bb 18463   DD bb 18941   EE aa 16256   EE aa 16920   EE bb 16265
1237  EE bb 16404   EE bb 16781   FF aa 14691   FF aa 14694   FF aa 14743
1238  FF aa 15153   FF bb 14423   FF bb 14491   FF bb 14635   FF bb 14787
1239  FF bb 15066   FF bb 15259   GG aa 16073   GG aa 16227   GG aa 16372
1240  GG aa 16559   GG bb 15769   GG bb 15778   GG bb 15863   GG bb 16547
1241  HH aa 17139   HH aa 17328   HH aa 17638   HH bb 17155   HH bb 17388
1242  HH bb 17435   HH bb 17763   HH bb 17788   HH bb 17985   II aa 18567
1243  II aa 18821   II bb 18414   II bb 18548   II bb 18776   II bb 18798
1244  II bb 18969   JJ aa 16452   JJ aa 16583   JJ aa 17117   JJ aa 17238
1245  JJ bb 16512   JJ bb 16997   JJ bb 17015   JJ bb 17094}
1246
1247do_execsql_test 1.10.7 {
1248  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1249} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 3815   AA bb 4058
1250  AA bb 4113   AA bb 4376   BB aa 6796   BB aa 6898   BB aa 7146   BB aa 7159
1251  BB aa 7165   BB aa 7311   BB bb 11185   BB bb 11233   BB bb 11239
1252  BB bb 11314   BB bb 11320   BB bb 11392   CC aa 10913   CC aa 11065
1253  CC aa 11242   CC aa 11514   CC bb 9640   CC bb 10116   DD aa 8069
1254  DD aa 8658   DD aa 8690   DD bb 6195   DD bb 6360   DD bb 6438   DD bb 6916
1255  EE aa 5313   EE aa 5977   EE bb 5803   EE bb 5942   EE bb 6319   FF aa 6739
1256  FF aa 6742   FF aa 6791   FF aa 7201   FF bb 7269   FF bb 7337   FF bb 7481
1257  FF bb 7633   FF bb 7912   FF bb 8105   GG aa 8280   GG aa 8434   GG aa 8579
1258  GG aa 8766   GG bb 9198   GG bb 9207   GG bb 9292   GG bb 9976   HH aa 9243
1259  HH aa 9432   HH aa 9742   HH bb 8948   HH bb 9181   HH bb 9228   HH bb 9556
1260  HH bb 9581   HH bb 9778   II aa 8712   II aa 8966   II bb 8278   II bb 8412
1261  II bb 8640   II bb 8662   II bb 8833   JJ aa 7949   JJ aa 8080   JJ aa 8614
1262  JJ aa 8735   JJ bb 6601   JJ bb 7086   JJ bb 7104   JJ bb 7183}
1263
1264do_execsql_test 1.11.1 {
1265  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1266} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
1267  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 44737   BB aa 44737
1268  BB aa 44737   BB aa 44737   BB aa 44737   BB aa 44737   BB bb 44737
1269  BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737
1270  CC aa 44737   CC aa 44737   CC aa 44737   CC aa 44737   CC bb 44737
1271  CC bb 44737   DD aa 40052   DD aa 40052   DD aa 40052   DD bb 40052
1272  DD bb 40052   DD bb 40052   DD bb 40052   EE aa 32712   EE aa 32712
1273  EE bb 32712   EE bb 32712   EE bb 32712   FF aa 29590   FF aa 29590
1274  FF aa 29590   FF aa 29590   FF bb 29590   FF bb 29590   FF bb 29590
1275  FF bb 29590   FF bb 29590   FF bb 29590   GG aa 25558   GG aa 25558
1276  GG aa 25558   GG aa 25558   GG bb 25558   GG bb 25558   GG bb 25558
1277  GG bb 25558   HH aa 23019   HH aa 23019   HH aa 23019   HH bb 23019
1278  HH bb 23019   HH bb 23019   HH bb 23019   HH bb 23019   HH bb 23019
1279  II aa 17351   II aa 17351   II bb 17351   II bb 17351   II bb 17351
1280  II bb 17351   II bb 17351   JJ aa 12883   JJ aa 12883   JJ aa 12883
1281  JJ aa 12883   JJ bb 12883   JJ bb 12883   JJ bb 12883   JJ bb 12883}
1282
1283do_execsql_test 1.11.2 {
1284  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1285} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
1286  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 44737   BB aa 44737
1287  BB aa 44737   BB aa 44737   BB aa 44737   BB aa 44737   BB bb 42430
1288  BB bb 42430   BB bb 42430   BB bb 42430   BB bb 42430   BB bb 42430
1289  CC aa 40052   CC aa 40052   CC aa 40052   CC aa 40052   CC bb 37179
1290  CC bb 37179   DD aa 32712   DD aa 32712   DD aa 32712   DD bb 30758
1291  DD bb 30758   DD bb 30758   DD bb 30758   EE aa 29590   EE aa 29590
1292  EE bb 28265   EE bb 28265   EE bb 28265   FF aa 25558   FF aa 25558
1293  FF aa 25558   FF aa 25558   FF bb 24668   FF bb 24668   FF bb 24668
1294  FF bb 24668   FF bb 24668   FF bb 24668   GG aa 23019   GG aa 23019
1295  GG aa 23019   GG aa 23019   GG bb 20856   GG bb 20856   GG bb 20856
1296  GG bb 20856   HH aa 17351   HH aa 17351   HH aa 17351   HH bb 15754
1297  HH bb 15754   HH bb 15754   HH bb 15754   HH bb 15754   HH bb 15754
1298  II aa 12883   II aa 12883   II bb 10634   II bb 10634   II bb 10634
1299  II bb 10634   II bb 10634   JJ aa 7440   JJ aa 7440   JJ aa 7440
1300  JJ aa 7440   JJ bb 6390   JJ bb 6390   JJ bb 6390   JJ bb 6390}
1301
1302do_execsql_test 1.11.3 {
1303  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1304} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1305  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1306  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1307  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1308  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1309  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1310  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1311  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1312  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1313  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1314  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1315  JJ bb 73   JJ bb 73   JJ bb 73}
1316
1317do_execsql_test 1.11.4 {
1318  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1319} {AA aa 979   AA aa 979   AA aa 979   AA aa 979   AA bb 979   AA bb 979
1320  AA bb 979   AA bb 979   BB aa 979   BB aa 979   BB aa 979   BB aa 979
1321  BB aa 979   BB aa 979   BB bb 979   BB bb 979   BB bb 979   BB bb 979
1322  BB bb 979   BB bb 979   CC aa 979   CC aa 979   CC aa 979   CC aa 979
1323  CC bb 979   CC bb 979   DD aa 979   DD aa 979   DD aa 979   DD bb 979
1324  DD bb 979   DD bb 979   DD bb 979   EE aa 979   EE aa 979   EE bb 979
1325  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
1326  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
1327  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
1328  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 979
1329  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
1330  II aa 979   II bb 963   II bb 963   II bb 963   II bb 963   II bb 963
1331  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 899   JJ bb 899
1332  JJ bb 899   JJ bb 899}
1333
1334do_execsql_test 1.11.5 {
1335  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1336} {AA aa 102   AA aa 102   AA aa 102   AA aa 102   AA bb 102   AA bb 102
1337  AA bb 102   AA bb 102   BB aa 102   BB aa 102   BB aa 102   BB aa 102
1338  BB aa 102   BB aa 102   BB bb 102   BB bb 102   BB bb 102   BB bb 102
1339  BB bb 102   BB bb 102   CC aa 102   CC aa 102   CC aa 102   CC aa 102
1340  CC bb 102   CC bb 102   DD aa 102   DD aa 102   DD aa 102   DD bb 102
1341  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
1342  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
1343  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1344  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
1345  GG bb 102   GG bb 102   HH aa 113   HH aa 113   HH aa 113   HH bb 113
1346  HH bb 113   HH bb 113   HH bb 113   HH bb 113   HH bb 113   II aa 113
1347  II aa 113   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
1348  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 113   JJ bb 113
1349  JJ bb 113   JJ bb 113}
1350
1351do_execsql_test 1.11.6 {
1352  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1353} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
1354  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 43975   BB aa 44077
1355  BB aa 44325   BB aa 44338   BB aa 44344   BB aa 44490   BB bb 43897
1356  BB bb 43945   BB bb 43951   BB bb 44026   BB bb 44032   BB bb 44104
1357  CC aa 43978   CC aa 44130   CC aa 44307   CC aa 44579   CC bb 43915
1358  CC bb 44391   DD aa 39207   DD aa 39796   DD aa 39828   DD bb 39093
1359  DD bb 39258   DD bb 39336   DD bb 39814   EE aa 31935   EE aa 32599
1360  EE bb 31944   EE bb 32083   EE bb 32460   FF aa 28920   FF aa 28923
1361  FF aa 28972   FF aa 29382   FF bb 28652   FF bb 28720   FF bb 28864
1362  FF bb 29016   FF bb 29295   FF bb 29488   GG aa 24924   GG aa 25078
1363  GG aa 25223   GG aa 25410   GG bb 24620   GG bb 24629   GG bb 24714
1364  GG bb 25398   HH aa 22040   HH aa 22229   HH aa 22539   HH bb 22056
1365  HH bb 22289   HH bb 22336   HH bb 22664   HH bb 22689   HH bb 22886
1366  II aa 16699   II aa 16953   II bb 16546   II bb 16680   II bb 16908
1367  II bb 16930   II bb 17101   JJ aa 11984   JJ aa 12115   JJ aa 12649
1368  JJ aa 12770   JJ bb 12044   JJ bb 12529   JJ bb 12547   JJ bb 12626}
1369
1370do_execsql_test 1.11.7 {
1371  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1372} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
1373  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 43975   BB aa 44077
1374  BB aa 44325   BB aa 44338   BB aa 44344   BB aa 44490   BB bb 41590
1375  BB bb 41638   BB bb 41644   BB bb 41719   BB bb 41725   BB bb 41797
1376  CC aa 39293   CC aa 39445   CC aa 39622   CC aa 39894   CC bb 36357
1377  CC bb 36833   DD aa 31867   DD aa 32456   DD aa 32488   DD bb 29799
1378  DD bb 29964   DD bb 30042   DD bb 30520   EE aa 28813   EE aa 29477
1379  EE bb 27497   EE bb 27636   EE bb 28013   FF aa 24888   FF aa 24891
1380  FF aa 24940   FF aa 25350   FF bb 23730   FF bb 23798   FF bb 23942
1381  FF bb 24094   FF bb 24373   FF bb 24566   GG aa 22385   GG aa 22539
1382  GG aa 22684   GG aa 22871   GG bb 19918   GG bb 19927   GG bb 20012
1383  GG bb 20696   HH aa 16372   HH aa 16561   HH aa 16871   HH bb 14791
1384  HH bb 15024   HH bb 15071   HH bb 15399   HH bb 15424   HH bb 15621
1385  II aa 12231   II aa 12485   II bb 9829   II bb 9963   II bb 10191
1386  II bb 10213   II bb 10384   JJ aa 6541   JJ aa 6672   JJ aa 7206
1387  JJ aa 7327   JJ bb 5551   JJ bb 6036   JJ bb 6054   JJ bb 6133}
1388
1389do_execsql_test 1.12.1 {
1390  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1391} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
1392  AA bb 4685   AA bb 4685   BB aa 7340   BB aa 7340   BB aa 7340   BB aa 7340
1393  BB aa 7340   BB aa 7340   BB bb 7340   BB bb 7340   BB bb 7340   BB bb 7340
1394  BB bb 7340   BB bb 7340   CC aa 3122   CC aa 3122   CC aa 3122   CC aa 3122
1395  CC bb 3122   CC bb 3122   DD aa 4032   DD aa 4032   DD aa 4032   DD bb 4032
1396  DD bb 4032   DD bb 4032   DD bb 4032   EE aa 2539   EE aa 2539   EE bb 2539
1397  EE bb 2539   EE bb 2539   FF aa 5668   FF aa 5668   FF aa 5668   FF aa 5668
1398  FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668
1399  GG aa 4468   GG aa 4468   GG aa 4468   GG aa 4468   GG bb 4468   GG bb 4468
1400  GG bb 4468   GG bb 4468   HH aa 5443   HH aa 5443   HH aa 5443   HH bb 5443
1401  HH bb 5443   HH bb 5443   HH bb 5443   HH bb 5443   HH bb 5443   II aa 3640
1402  II aa 3640   II bb 3640   II bb 3640   II bb 3640   II bb 3640   II bb 3640
1403  JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 3800   JJ bb 3800
1404  JJ bb 3800   JJ bb 3800}
1405
1406do_execsql_test 1.12.2 {
1407  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1408} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 2378   AA bb 2378
1409  AA bb 2378   AA bb 2378   BB aa 2873   BB aa 2873   BB aa 2873   BB aa 2873
1410  BB aa 2873   BB aa 2873   BB bb 4467   BB bb 4467   BB bb 4467   BB bb 4467
1411  BB bb 4467   BB bb 4467   CC aa 1954   CC aa 1954   CC aa 1954   CC aa 1954
1412  CC bb 1168   CC bb 1168   DD aa 1325   DD aa 1325   DD aa 1325   DD bb 2707
1413  DD bb 2707   DD bb 2707   DD bb 2707   EE aa 890   EE aa 890   EE bb 1649
1414  EE bb 1649   EE bb 1649   FF aa 2163   FF aa 2163   FF aa 2163   FF aa 2163
1415  FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505
1416  GG aa 1597   GG aa 1597   GG aa 1597   GG aa 1597   GG bb 2871   GG bb 2871
1417  GG bb 2871   GG bb 2871   HH aa 2249   HH aa 2249   HH aa 2249   HH bb 3194
1418  HH bb 3194   HH bb 3194   HH bb 3194   HH bb 3194   HH bb 3194   II aa 1050
1419  II aa 1050   II bb 2590   II bb 2590   II bb 2590   II bb 2590   II bb 2590
1420  JJ aa 2014   JJ aa 2014   JJ aa 2014   JJ aa 2014   JJ bb 1786   JJ bb 1786
1421  JJ bb 1786   JJ bb 1786}
1422
1423do_execsql_test 1.12.3 {
1424  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1425} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1426  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1427  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1428  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1429  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1430  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1431  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1432  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1433  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1434  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1435  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1436  JJ bb 73   JJ bb 73   JJ bb 73}
1437
1438do_execsql_test 1.12.4 {
1439  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1440} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 870   AA bb 870
1441  AA bb 870   AA bb 870   BB aa 762   BB aa 762   BB aa 762   BB aa 762
1442  BB aa 762   BB aa 762   BB bb 840   BB bb 840   BB bb 840   BB bb 840
1443  BB bb 840   BB bb 840   CC aa 759   CC aa 759   CC aa 759   CC aa 759
1444  CC bb 822   CC bb 822   DD aa 845   DD aa 845   DD aa 845   DD bb 959
1445  DD bb 959   DD bb 959   DD bb 959   EE aa 777   EE aa 777   EE bb 768
1446  EE bb 768   EE bb 768   FF aa 670   FF aa 670   FF aa 670   FF aa 670
1447  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
1448  GG aa 634   GG aa 634   GG aa 634   GG aa 634   GG bb 938   GG bb 938
1449  GG bb 938   GG bb 938   HH aa 979   HH aa 979   HH aa 979   HH bb 963
1450  HH bb 963   HH bb 963   HH bb 963   HH bb 963   HH bb 963   II aa 652
1451  II aa 652   II bb 805   II bb 805   II bb 805   II bb 805   II bb 805
1452  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 839   JJ bb 839
1453  JJ bb 839   JJ bb 839}
1454
1455do_execsql_test 1.12.5 {
1456  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1457} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 309   AA bb 309
1458  AA bb 309   AA bb 309   BB aa 247   BB aa 247   BB aa 247   BB aa 247
1459  BB aa 247   BB aa 247   BB bb 633   BB bb 633   BB bb 633   BB bb 633
1460  BB bb 633   BB bb 633   CC aa 158   CC aa 158   CC aa 158   CC aa 158
1461  CC bb 346   CC bb 346   DD aa 224   DD aa 224   DD aa 224   DD bb 238
1462  DD bb 238   DD bb 238   DD bb 238   EE aa 113   EE aa 113   EE bb 252
1463  EE bb 252   EE bb 252   FF aa 208   FF aa 208   FF aa 208   FF aa 208
1464  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1465  GG aa 148   GG aa 148   GG aa 148   GG aa 148   GG bb 160   GG bb 160
1466  GG bb 160   GG bb 160   HH aa 480   HH aa 480   HH aa 480   HH bb 133
1467  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 398
1468  II aa 398   II bb 250   II bb 250   II bb 250   II bb 250   II bb 250
1469  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 257   JJ bb 257
1470  JJ bb 257   JJ bb 257}
1471
1472do_execsql_test 1.12.6 {
1473  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1474} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
1475  AA bb 4113   AA bb 4376   BB aa 6578   BB aa 6680   BB aa 6928   BB aa 6941
1476  BB aa 6947   BB aa 7093   BB bb 6500   BB bb 6548   BB bb 6554   BB bb 6629
1477  BB bb 6635   BB bb 6707   CC aa 2363   CC aa 2515   CC aa 2692   CC aa 2964
1478  CC bb 2300   CC bb 2776   DD aa 3187   DD aa 3776   DD aa 3808   DD bb 3073
1479  DD bb 3238   DD bb 3316   DD bb 3794   EE aa 1762   EE aa 2426   EE bb 1771
1480  EE bb 1910   EE bb 2287   FF aa 4998   FF aa 5001   FF aa 5050   FF aa 5460
1481  FF bb 4730   FF bb 4798   FF bb 4942   FF bb 5094   FF bb 5373   FF bb 5566
1482  GG aa 3834   GG aa 3988   GG aa 4133   GG aa 4320   GG bb 3530   GG bb 3539
1483  GG bb 3624   GG bb 4308   HH aa 4464   HH aa 4653   HH aa 4963   HH bb 4480
1484  HH bb 4713   HH bb 4760   HH bb 5088   HH bb 5113   HH bb 5310   II aa 2988
1485  II aa 3242   II bb 2835   II bb 2969   II bb 3197   II bb 3219   II bb 3390
1486  JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 2961   JJ bb 3446
1487  JJ bb 3464   JJ bb 3543}
1488
1489do_execsql_test 1.12.7 {
1490  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1491} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 1508   AA bb 1751
1492  AA bb 1806   AA bb 2069   BB aa 2111   BB aa 2213   BB aa 2461   BB aa 2474
1493  BB aa 2480   BB aa 2626   BB bb 3627   BB bb 3675   BB bb 3681   BB bb 3756
1494  BB bb 3762   BB bb 3834   CC aa 1195   CC aa 1347   CC aa 1524   CC aa 1796
1495  CC bb 346   CC bb 822   DD aa 480   DD aa 1069   DD aa 1101   DD bb 1748
1496  DD bb 1913   DD bb 1991   DD bb 2469   EE aa 113   EE aa 777   EE bb 881
1497  EE bb 1020   EE bb 1397   FF aa 1493   FF aa 1496   FF aa 1545   FF aa 1955
1498  FF bb 2567   FF bb 2635   FF bb 2779   FF bb 2931   FF bb 3210   FF bb 3403
1499  GG aa 963   GG aa 1117   GG aa 1262   GG aa 1449   GG bb 1933   GG bb 1942
1500  GG bb 2027   GG bb 2711   HH aa 1270   HH aa 1459   HH aa 1769   HH bb 2231
1501  HH bb 2464   HH bb 2511   HH bb 2839   HH bb 2864   HH bb 3061   II aa 398
1502  II aa 652   II bb 1785   II bb 1919   II bb 2147   II bb 2169   II bb 2340
1503  JJ aa 1115   JJ aa 1246   JJ aa 1780   JJ aa 1901   JJ bb 947   JJ bb 1432
1504  JJ bb 1450   JJ bb 1529}
1505
1506do_execsql_test 1.13.1 {
1507  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1508} {AA aa 12025   AA aa 12025   AA aa 12025   AA aa 12025   AA bb 12025
1509  AA bb 12025   AA bb 12025   AA bb 12025   BB aa 10462   BB aa 10462
1510  BB aa 10462   BB aa 10462   BB aa 10462   BB aa 10462   BB bb 10462
1511  BB bb 10462   BB bb 10462   BB bb 10462   BB bb 10462   BB bb 10462
1512  CC aa 7154   CC aa 7154   CC aa 7154   CC aa 7154   CC bb 7154   CC bb 7154
1513  DD aa 6571   DD aa 6571   DD aa 6571   DD bb 6571   DD bb 6571   DD bb 6571
1514  DD bb 6571   EE aa 8207   EE aa 8207   EE bb 8207   EE bb 8207   EE bb 8207
1515  FF aa 10136   FF aa 10136   FF aa 10136   FF aa 10136   FF bb 10136
1516  FF bb 10136   FF bb 10136   FF bb 10136   FF bb 10136   FF bb 10136
1517  GG aa 9911   GG aa 9911   GG aa 9911   GG aa 9911   GG bb 9911   GG bb 9911
1518  GG bb 9911   GG bb 9911   HH aa 9083   HH aa 9083   HH aa 9083   HH bb 9083
1519  HH bb 9083   HH bb 9083   HH bb 9083   HH bb 9083   HH bb 9083   II aa 7440
1520  II aa 7440   II bb 7440   II bb 7440   II bb 7440   II bb 7440   II bb 7440
1521  JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 3800   JJ bb 3800
1522  JJ bb 3800   JJ bb 3800}
1523
1524do_execsql_test 1.13.2 {
1525  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1526} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 5251   AA bb 5251
1527  AA bb 5251   AA bb 5251   BB aa 7340   BB aa 7340   BB aa 7340   BB aa 7340
1528  BB aa 7340   BB aa 7340   BB bb 6421   BB bb 6421   BB bb 6421   BB bb 6421
1529  BB bb 6421   BB bb 6421   CC aa 3122   CC aa 3122   CC aa 3122   CC aa 3122
1530  CC bb 2493   CC bb 2493   DD aa 4032   DD aa 4032   DD aa 4032   DD bb 3597
1531  DD bb 3597   DD bb 3597   DD bb 3597   EE aa 2539   EE aa 2539   EE bb 3812
1532  EE bb 3812   EE bb 3812   FF aa 5668   FF aa 5668   FF aa 5668   FF aa 5668
1533  FF bb 5102   FF bb 5102   FF bb 5102   FF bb 5102   FF bb 5102   FF bb 5102
1534  GG aa 4468   GG aa 4468   GG aa 4468   GG aa 4468   GG bb 5120   GG bb 5120
1535  GG bb 5120   GG bb 5120   HH aa 5443   HH aa 5443   HH aa 5443   HH bb 4244
1536  HH bb 4244   HH bb 4244   HH bb 4244   HH bb 4244   HH bb 4244   II aa 3640
1537  II aa 3640   II bb 4604   II bb 4604   II bb 4604   II bb 4604   II bb 4604
1538  JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 1786   JJ bb 1786
1539  JJ bb 1786   JJ bb 1786}
1540
1541do_execsql_test 1.13.3 {
1542  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1543} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1544  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1545  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1546  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1547  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1548  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1549  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1550  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1551  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1552  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1553  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1554  JJ bb 73   JJ bb 73   JJ bb 73}
1555
1556do_execsql_test 1.13.4 {
1557  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1558} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 870   AA bb 870
1559  AA bb 870   AA bb 870   BB aa 840   BB aa 840   BB aa 840   BB aa 840
1560  BB aa 840   BB aa 840   BB bb 840   BB bb 840   BB bb 840   BB bb 840
1561  BB bb 840   BB bb 840   CC aa 822   CC aa 822   CC aa 822   CC aa 822
1562  CC bb 845   CC bb 845   DD aa 959   DD aa 959   DD aa 959   DD bb 959
1563  DD bb 959   DD bb 959   DD bb 959   EE aa 777   EE aa 777   EE bb 768
1564  EE bb 768   EE bb 768   FF aa 938   FF aa 938   FF aa 938   FF aa 938
1565  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
1566  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 979   GG bb 979
1567  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 963
1568  HH bb 963   HH bb 963   HH bb 963   HH bb 963   HH bb 963   II aa 805
1569  II aa 805   II bb 899   II bb 899   II bb 899   II bb 899   II bb 899
1570  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 839   JJ bb 839
1571  JJ bb 839   JJ bb 839}
1572
1573do_execsql_test 1.13.5 {
1574  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1575} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 247   AA bb 247
1576  AA bb 247   AA bb 247   BB aa 247   BB aa 247   BB aa 247   BB aa 247
1577  BB aa 247   BB aa 247   BB bb 158   BB bb 158   BB bb 158   BB bb 158
1578  BB bb 158   BB bb 158   CC aa 158   CC aa 158   CC aa 158   CC aa 158
1579  CC bb 224   CC bb 224   DD aa 224   DD aa 224   DD aa 224   DD bb 113
1580  DD bb 113   DD bb 113   DD bb 113   EE aa 113   EE aa 113   EE bb 208
1581  EE bb 208   EE bb 208   FF aa 102   FF aa 102   FF aa 102   FF aa 102
1582  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1583  GG aa 148   GG aa 148   GG aa 148   GG aa 148   GG bb 160   GG bb 160
1584  GG bb 160   GG bb 160   HH aa 133   HH aa 133   HH aa 133   HH bb 133
1585  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 250
1586  II aa 250   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
1587  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 257   JJ bb 257
1588  JJ bb 257   JJ bb 257}
1589
1590do_execsql_test 1.13.6 {
1591  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1592} {AA aa 11091   AA aa 11114   AA aa 11786   AA aa 11802   AA bb 11155
1593  AA bb 11398   AA bb 11453   AA bb 11716   BB aa 9700   BB aa 9802
1594  BB aa 10050   BB aa 10063   BB aa 10069   BB aa 10215   BB bb 9622
1595  BB bb 9670   BB bb 9676   BB bb 9751   BB bb 9757   BB bb 9829   CC aa 6395
1596  CC aa 6547   CC aa 6724   CC aa 6996   CC bb 6332   CC bb 6808   DD aa 5726
1597  DD aa 6315   DD aa 6347   DD bb 5612   DD bb 5777   DD bb 5855   DD bb 6333
1598  EE aa 7430   EE aa 8094   EE bb 7439   EE bb 7578   EE bb 7955   FF aa 9466
1599  FF aa 9469   FF aa 9518   FF aa 9928   FF bb 9198   FF bb 9266   FF bb 9410
1600  FF bb 9562   FF bb 9841   FF bb 10034   GG aa 9277   GG aa 9431
1601  GG aa 9576   GG aa 9763   GG bb 8973   GG bb 8982   GG bb 9067   GG bb 9751
1602  HH aa 8104   HH aa 8293   HH aa 8603   HH bb 8120   HH bb 8353   HH bb 8400
1603  HH bb 8728   HH bb 8753   HH bb 8950   II aa 6788   II aa 7042   II bb 6635
1604  II bb 6769   II bb 6997   II bb 7019   II bb 7190   JJ aa 2901   JJ aa 3032
1605  JJ aa 3566   JJ aa 3687   JJ bb 2961   JJ bb 3446   JJ bb 3464   JJ bb 3543}
1606
1607do_execsql_test 1.13.7 {
1608  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1609} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 4381   AA bb 4624
1610  AA bb 4679   AA bb 4942   BB aa 6578   BB aa 6680   BB aa 6928   BB aa 6941
1611  BB aa 6947   BB aa 7093   BB bb 5581   BB bb 5629   BB bb 5635   BB bb 5710
1612  BB bb 5716   BB bb 5788   CC aa 2363   CC aa 2515   CC aa 2692   CC aa 2964
1613  CC bb 1671   CC bb 2147   DD aa 3187   DD aa 3776   DD aa 3808   DD bb 2638
1614  DD bb 2803   DD bb 2881   DD bb 3359   EE aa 1762   EE aa 2426   EE bb 3044
1615  EE bb 3183   EE bb 3560   FF aa 4998   FF aa 5001   FF aa 5050   FF aa 5460
1616  FF bb 4164   FF bb 4232   FF bb 4376   FF bb 4528   FF bb 4807   FF bb 5000
1617  GG aa 3834   GG aa 3988   GG aa 4133   GG aa 4320   GG bb 4182   GG bb 4191
1618  GG bb 4276   GG bb 4960   HH aa 4464   HH aa 4653   HH aa 4963   HH bb 3281
1619  HH bb 3514   HH bb 3561   HH bb 3889   HH bb 3914   HH bb 4111   II aa 2988
1620  II aa 3242   II bb 3799   II bb 3933   II bb 4161   II bb 4183   II bb 4354
1621  JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 947   JJ bb 1432
1622  JJ bb 1450   JJ bb 1529}
1623
1624do_execsql_test 1.14.1 {
1625  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1626} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
1627  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 40052   BB aa 40052
1628  BB aa 40052   BB aa 40052   BB aa 40052   BB aa 40052   BB bb 40052
1629  BB bb 40052   BB bb 40052   BB bb 40052   BB bb 40052   BB bb 40052
1630  CC aa 32712   CC aa 32712   CC aa 32712   CC aa 32712   CC bb 32712
1631  CC bb 32712   DD aa 29590   DD aa 29590   DD aa 29590   DD bb 29590
1632  DD bb 29590   DD bb 29590   DD bb 29590   EE aa 25558   EE aa 25558
1633  EE bb 25558   EE bb 25558   EE bb 25558   FF aa 23019   FF aa 23019
1634  FF aa 23019   FF aa 23019   FF bb 23019   FF bb 23019   FF bb 23019
1635  FF bb 23019   FF bb 23019   FF bb 23019   GG aa 17351   GG aa 17351
1636  GG aa 17351   GG aa 17351   GG bb 17351   GG bb 17351   GG bb 17351
1637  GG bb 17351   HH aa 12883   HH aa 12883   HH aa 12883   HH bb 12883
1638  HH bb 12883   HH bb 12883   HH bb 12883   HH bb 12883   HH bb 12883
1639  II aa 7440   II aa 7440   II bb 7440   II bb 7440   II bb 7440   II bb 7440
1640  II bb 7440   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 3800
1641  JJ bb 3800   JJ bb 3800   JJ bb 3800}
1642
1643do_execsql_test 1.14.2 {
1644  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1645} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 42430
1646  AA bb 42430   AA bb 42430   AA bb 42430   BB aa 40052   BB aa 40052
1647  BB aa 40052   BB aa 40052   BB aa 40052   BB aa 40052   BB bb 37179
1648  BB bb 37179   BB bb 37179   BB bb 37179   BB bb 37179   BB bb 37179
1649  CC aa 32712   CC aa 32712   CC aa 32712   CC aa 32712   CC bb 30758
1650  CC bb 30758   DD aa 29590   DD aa 29590   DD aa 29590   DD bb 28265
1651  DD bb 28265   DD bb 28265   DD bb 28265   EE aa 25558   EE aa 25558
1652  EE bb 24668   EE bb 24668   EE bb 24668   FF aa 23019   FF aa 23019
1653  FF aa 23019   FF aa 23019   FF bb 20856   FF bb 20856   FF bb 20856
1654  FF bb 20856   FF bb 20856   FF bb 20856   GG aa 17351   GG aa 17351
1655  GG aa 17351   GG aa 17351   GG bb 15754   GG bb 15754   GG bb 15754
1656  GG bb 15754   HH aa 12883   HH aa 12883   HH aa 12883   HH bb 10634
1657  HH bb 10634   HH bb 10634   HH bb 10634   HH bb 10634   HH bb 10634
1658  II aa 7440   II aa 7440   II bb 6390   II bb 6390   II bb 6390   II bb 6390
1659  II bb 6390   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 1786
1660  JJ bb 1786   JJ bb 1786   JJ bb 1786}
1661
1662do_execsql_test 1.14.3 {
1663  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1664} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1665  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1666  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1667  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1668  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1669  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1670  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1671  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1672  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1673  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1674  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1675  JJ bb 73   JJ bb 73   JJ bb 73}
1676
1677do_execsql_test 1.14.4 {
1678  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1679} {AA aa 979   AA aa 979   AA aa 979   AA aa 979   AA bb 979   AA bb 979
1680  AA bb 979   AA bb 979   BB aa 979   BB aa 979   BB aa 979   BB aa 979
1681  BB aa 979   BB aa 979   BB bb 979   BB bb 979   BB bb 979   BB bb 979
1682  BB bb 979   BB bb 979   CC aa 979   CC aa 979   CC aa 979   CC aa 979
1683  CC bb 979   CC bb 979   DD aa 979   DD aa 979   DD aa 979   DD bb 979
1684  DD bb 979   DD bb 979   DD bb 979   EE aa 979   EE aa 979   EE bb 979
1685  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
1686  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
1687  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
1688  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 963
1689  HH bb 963   HH bb 963   HH bb 963   HH bb 963   HH bb 963   II aa 899
1690  II aa 899   II bb 899   II bb 899   II bb 899   II bb 899   II bb 899
1691  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 839   JJ bb 839
1692  JJ bb 839   JJ bb 839}
1693
1694do_execsql_test 1.14.5 {
1695  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1696} {AA aa 102   AA aa 102   AA aa 102   AA aa 102   AA bb 102   AA bb 102
1697  AA bb 102   AA bb 102   BB aa 102   BB aa 102   BB aa 102   BB aa 102
1698  BB aa 102   BB aa 102   BB bb 102   BB bb 102   BB bb 102   BB bb 102
1699  BB bb 102   BB bb 102   CC aa 102   CC aa 102   CC aa 102   CC aa 102
1700  CC bb 102   CC bb 102   DD aa 102   DD aa 102   DD aa 102   DD bb 102
1701  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
1702  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
1703  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1704  GG aa 113   GG aa 113   GG aa 113   GG aa 113   GG bb 113   GG bb 113
1705  GG bb 113   GG bb 113   HH aa 113   HH aa 113   HH aa 113   HH bb 113
1706  HH bb 113   HH bb 113   HH bb 113   HH bb 113   HH bb 113   II aa 113
1707  II aa 113   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
1708  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 257   JJ bb 257
1709  JJ bb 257   JJ bb 257}
1710
1711do_execsql_test 1.14.6 {
1712  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1713} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
1714  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 39290   BB aa 39392
1715  BB aa 39640   BB aa 39653   BB aa 39659   BB aa 39805   BB bb 39212
1716  BB bb 39260   BB bb 39266   BB bb 39341   BB bb 39347   BB bb 39419
1717  CC aa 31953   CC aa 32105   CC aa 32282   CC aa 32554   CC bb 31890
1718  CC bb 32366   DD aa 28745   DD aa 29334   DD aa 29366   DD bb 28631
1719  DD bb 28796   DD bb 28874   DD bb 29352   EE aa 24781   EE aa 25445
1720  EE bb 24790   EE bb 24929   EE bb 25306   FF aa 22349   FF aa 22352
1721  FF aa 22401   FF aa 22811   FF bb 22081   FF bb 22149   FF bb 22293
1722  FF bb 22445   FF bb 22724   FF bb 22917   GG aa 16717   GG aa 16871
1723  GG aa 17016   GG aa 17203   GG bb 16413   GG bb 16422   GG bb 16507
1724  GG bb 17191   HH aa 11904   HH aa 12093   HH aa 12403   HH bb 11920
1725  HH bb 12153   HH bb 12200   HH bb 12528   HH bb 12553   HH bb 12750
1726  II aa 6788   II aa 7042   II bb 6635   II bb 6769   II bb 6997   II bb 7019
1727  II bb 7190   JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 2961
1728  JJ bb 3446   JJ bb 3464   JJ bb 3543}
1729
1730do_execsql_test 1.14.7 {
1731  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1732} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 41560
1733  AA bb 41803   AA bb 41858   AA bb 42121   BB aa 39290   BB aa 39392
1734  BB aa 39640   BB aa 39653   BB aa 39659   BB aa 39805   BB bb 36339
1735  BB bb 36387   BB bb 36393   BB bb 36468   BB bb 36474   BB bb 36546
1736  CC aa 31953   CC aa 32105   CC aa 32282   CC aa 32554   CC bb 29936
1737  CC bb 30412   DD aa 28745   DD aa 29334   DD aa 29366   DD bb 27306
1738  DD bb 27471   DD bb 27549   DD bb 28027   EE aa 24781   EE aa 25445
1739  EE bb 23900   EE bb 24039   EE bb 24416   FF aa 22349   FF aa 22352
1740  FF aa 22401   FF aa 22811   FF bb 19918   FF bb 19986   FF bb 20130
1741  FF bb 20282   FF bb 20561   FF bb 20754   GG aa 16717   GG aa 16871
1742  GG aa 17016   GG aa 17203   GG bb 14816   GG bb 14825   GG bb 14910
1743  GG bb 15594   HH aa 11904   HH aa 12093   HH aa 12403   HH bb 9671
1744  HH bb 9904   HH bb 9951   HH bb 10279   HH bb 10304   HH bb 10501
1745  II aa 6788   II aa 7042   II bb 5585   II bb 5719   II bb 5947   II bb 5969
1746  II bb 6140   JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 947
1747  JJ bb 1432   JJ bb 1450   JJ bb 1529}
1748
1749do_execsql_test 1.15.1 {
1750  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1751} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
1752  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 40052   BB aa 40052
1753  BB aa 40052   BB aa 40052   BB aa 40052   BB aa 40052   BB bb 40052
1754  BB bb 40052   BB bb 40052   BB bb 40052   BB bb 40052   BB bb 40052
1755  CC aa 32712   CC aa 32712   CC aa 32712   CC aa 32712   CC bb 32712
1756  CC bb 32712   DD aa 29590   DD aa 29590   DD aa 29590   DD bb 29590
1757  DD bb 29590   DD bb 29590   DD bb 29590   EE aa 25558   EE aa 25558
1758  EE bb 25558   EE bb 25558   EE bb 25558   FF aa 23019   FF aa 23019
1759  FF aa 23019   FF aa 23019   FF bb 23019   FF bb 23019   FF bb 23019
1760  FF bb 23019   FF bb 23019   FF bb 23019   GG aa 17351   GG aa 17351
1761  GG aa 17351   GG aa 17351   GG bb 17351   GG bb 17351   GG bb 17351
1762  GG bb 17351   HH aa 12883   HH aa 12883   HH aa 12883   HH bb 12883
1763  HH bb 12883   HH bb 12883   HH bb 12883   HH bb 12883   HH bb 12883
1764  II aa 7440   II aa 7440   II bb 7440   II bb 7440   II bb 7440   II bb 7440
1765  II bb 7440   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 3800
1766  JJ bb 3800   JJ bb 3800   JJ bb 3800}
1767
1768do_execsql_test 1.15.2 {
1769  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1770} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 42430
1771  AA bb 42430   AA bb 42430   AA bb 42430   BB aa 40052   BB aa 40052
1772  BB aa 40052   BB aa 40052   BB aa 40052   BB aa 40052   BB bb 37179
1773  BB bb 37179   BB bb 37179   BB bb 37179   BB bb 37179   BB bb 37179
1774  CC aa 32712   CC aa 32712   CC aa 32712   CC aa 32712   CC bb 30758
1775  CC bb 30758   DD aa 29590   DD aa 29590   DD aa 29590   DD bb 28265
1776  DD bb 28265   DD bb 28265   DD bb 28265   EE aa 25558   EE aa 25558
1777  EE bb 24668   EE bb 24668   EE bb 24668   FF aa 23019   FF aa 23019
1778  FF aa 23019   FF aa 23019   FF bb 20856   FF bb 20856   FF bb 20856
1779  FF bb 20856   FF bb 20856   FF bb 20856   GG aa 17351   GG aa 17351
1780  GG aa 17351   GG aa 17351   GG bb 15754   GG bb 15754   GG bb 15754
1781  GG bb 15754   HH aa 12883   HH aa 12883   HH aa 12883   HH bb 10634
1782  HH bb 10634   HH bb 10634   HH bb 10634   HH bb 10634   HH bb 10634
1783  II aa 7440   II aa 7440   II bb 6390   II bb 6390   II bb 6390   II bb 6390
1784  II bb 6390   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 1786
1785  JJ bb 1786   JJ bb 1786   JJ bb 1786}
1786
1787do_execsql_test 1.15.3 {
1788  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1789} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1790  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1791  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1792  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1793  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1794  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1795  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1796  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1797  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1798  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1799  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1800  JJ bb 73   JJ bb 73   JJ bb 73}
1801
1802do_execsql_test 1.15.4 {
1803  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1804} {AA aa 979   AA aa 979   AA aa 979   AA aa 979   AA bb 979   AA bb 979
1805  AA bb 979   AA bb 979   BB aa 979   BB aa 979   BB aa 979   BB aa 979
1806  BB aa 979   BB aa 979   BB bb 979   BB bb 979   BB bb 979   BB bb 979
1807  BB bb 979   BB bb 979   CC aa 979   CC aa 979   CC aa 979   CC aa 979
1808  CC bb 979   CC bb 979   DD aa 979   DD aa 979   DD aa 979   DD bb 979
1809  DD bb 979   DD bb 979   DD bb 979   EE aa 979   EE aa 979   EE bb 979
1810  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
1811  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
1812  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
1813  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 963
1814  HH bb 963   HH bb 963   HH bb 963   HH bb 963   HH bb 963   II aa 899
1815  II aa 899   II bb 899   II bb 899   II bb 899   II bb 899   II bb 899
1816  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 839   JJ bb 839
1817  JJ bb 839   JJ bb 839}
1818
1819do_execsql_test 1.15.5 {
1820  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1821} {AA aa 102   AA aa 102   AA aa 102   AA aa 102   AA bb 102   AA bb 102
1822  AA bb 102   AA bb 102   BB aa 102   BB aa 102   BB aa 102   BB aa 102
1823  BB aa 102   BB aa 102   BB bb 102   BB bb 102   BB bb 102   BB bb 102
1824  BB bb 102   BB bb 102   CC aa 102   CC aa 102   CC aa 102   CC aa 102
1825  CC bb 102   CC bb 102   DD aa 102   DD aa 102   DD aa 102   DD bb 102
1826  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
1827  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
1828  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1829  GG aa 113   GG aa 113   GG aa 113   GG aa 113   GG bb 113   GG bb 113
1830  GG bb 113   GG bb 113   HH aa 113   HH aa 113   HH aa 113   HH bb 113
1831  HH bb 113   HH bb 113   HH bb 113   HH bb 113   HH bb 113   II aa 113
1832  II aa 113   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
1833  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 257   JJ bb 257
1834  JJ bb 257   JJ bb 257}
1835
1836do_execsql_test 1.15.6 {
1837  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1838} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
1839  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 39290   BB aa 39392
1840  BB aa 39640   BB aa 39653   BB aa 39659   BB aa 39805   BB bb 39212
1841  BB bb 39260   BB bb 39266   BB bb 39341   BB bb 39347   BB bb 39419
1842  CC aa 31953   CC aa 32105   CC aa 32282   CC aa 32554   CC bb 31890
1843  CC bb 32366   DD aa 28745   DD aa 29334   DD aa 29366   DD bb 28631
1844  DD bb 28796   DD bb 28874   DD bb 29352   EE aa 24781   EE aa 25445
1845  EE bb 24790   EE bb 24929   EE bb 25306   FF aa 22349   FF aa 22352
1846  FF aa 22401   FF aa 22811   FF bb 22081   FF bb 22149   FF bb 22293
1847  FF bb 22445   FF bb 22724   FF bb 22917   GG aa 16717   GG aa 16871
1848  GG aa 17016   GG aa 17203   GG bb 16413   GG bb 16422   GG bb 16507
1849  GG bb 17191   HH aa 11904   HH aa 12093   HH aa 12403   HH bb 11920
1850  HH bb 12153   HH bb 12200   HH bb 12528   HH bb 12553   HH bb 12750
1851  II aa 6788   II aa 7042   II bb 6635   II bb 6769   II bb 6997   II bb 7019
1852  II bb 7190   JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 2961
1853  JJ bb 3446   JJ bb 3464   JJ bb 3543}
1854
1855do_execsql_test 1.15.7 {
1856  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1857} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 41560
1858  AA bb 41803   AA bb 41858   AA bb 42121   BB aa 39290   BB aa 39392
1859  BB aa 39640   BB aa 39653   BB aa 39659   BB aa 39805   BB bb 36339
1860  BB bb 36387   BB bb 36393   BB bb 36468   BB bb 36474   BB bb 36546
1861  CC aa 31953   CC aa 32105   CC aa 32282   CC aa 32554   CC bb 29936
1862  CC bb 30412   DD aa 28745   DD aa 29334   DD aa 29366   DD bb 27306
1863  DD bb 27471   DD bb 27549   DD bb 28027   EE aa 24781   EE aa 25445
1864  EE bb 23900   EE bb 24039   EE bb 24416   FF aa 22349   FF aa 22352
1865  FF aa 22401   FF aa 22811   FF bb 19918   FF bb 19986   FF bb 20130
1866  FF bb 20282   FF bb 20561   FF bb 20754   GG aa 16717   GG aa 16871
1867  GG aa 17016   GG aa 17203   GG bb 14816   GG bb 14825   GG bb 14910
1868  GG bb 15594   HH aa 11904   HH aa 12093   HH aa 12403   HH bb 9671
1869  HH bb 9904   HH bb 9951   HH bb 10279   HH bb 10304   HH bb 10501
1870  II aa 6788   II aa 7042   II bb 5585   II bb 5719   II bb 5947   II bb 5969
1871  II bb 6140   JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 947
1872  JJ bb 1432   JJ bb 1450   JJ bb 1529}
1873
1874do_execsql_test 1.16.1 {
1875  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1876} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
1877  AA bb 4685   AA bb 4685   BB aa 7340   BB aa 7340   BB aa 7340   BB aa 7340
1878  BB aa 7340   BB aa 7340   BB bb 7340   BB bb 7340   BB bb 7340   BB bb 7340
1879  BB bb 7340   BB bb 7340   CC aa 3122   CC aa 3122   CC aa 3122   CC aa 3122
1880  CC bb 3122   CC bb 3122   DD aa 4032   DD aa 4032   DD aa 4032   DD bb 4032
1881  DD bb 4032   DD bb 4032   DD bb 4032   EE aa 2539   EE aa 2539   EE bb 2539
1882  EE bb 2539   EE bb 2539   FF aa 5668   FF aa 5668   FF aa 5668   FF aa 5668
1883  FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668
1884  GG aa 4468   GG aa 4468   GG aa 4468   GG aa 4468   GG bb 4468   GG bb 4468
1885  GG bb 4468   GG bb 4468   HH aa 5443   HH aa 5443   HH aa 5443   HH bb 5443
1886  HH bb 5443   HH bb 5443   HH bb 5443   HH bb 5443   HH bb 5443   II aa 3640
1887  II aa 3640   II bb 3640   II bb 3640   II bb 3640   II bb 3640   II bb 3640
1888  JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 3800   JJ bb 3800
1889  JJ bb 3800   JJ bb 3800}
1890
1891do_execsql_test 1.16.2 {
1892  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1893} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 2378   AA bb 2378
1894  AA bb 2378   AA bb 2378   BB aa 2873   BB aa 2873   BB aa 2873   BB aa 2873
1895  BB aa 2873   BB aa 2873   BB bb 4467   BB bb 4467   BB bb 4467   BB bb 4467
1896  BB bb 4467   BB bb 4467   CC aa 1954   CC aa 1954   CC aa 1954   CC aa 1954
1897  CC bb 1168   CC bb 1168   DD aa 1325   DD aa 1325   DD aa 1325   DD bb 2707
1898  DD bb 2707   DD bb 2707   DD bb 2707   EE aa 890   EE aa 890   EE bb 1649
1899  EE bb 1649   EE bb 1649   FF aa 2163   FF aa 2163   FF aa 2163   FF aa 2163
1900  FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505
1901  GG aa 1597   GG aa 1597   GG aa 1597   GG aa 1597   GG bb 2871   GG bb 2871
1902  GG bb 2871   GG bb 2871   HH aa 2249   HH aa 2249   HH aa 2249   HH bb 3194
1903  HH bb 3194   HH bb 3194   HH bb 3194   HH bb 3194   HH bb 3194   II aa 1050
1904  II aa 1050   II bb 2590   II bb 2590   II bb 2590   II bb 2590   II bb 2590
1905  JJ aa 2014   JJ aa 2014   JJ aa 2014   JJ aa 2014   JJ bb 1786   JJ bb 1786
1906  JJ bb 1786   JJ bb 1786}
1907
1908do_execsql_test 1.16.3 {
1909  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1910} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1911  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1912  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1913  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1914  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1915  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1916  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1917  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1918  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1919  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1920  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1921  JJ bb 73   JJ bb 73   JJ bb 73}
1922
1923do_execsql_test 1.16.4 {
1924  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1925} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 870   AA bb 870
1926  AA bb 870   AA bb 870   BB aa 762   BB aa 762   BB aa 762   BB aa 762
1927  BB aa 762   BB aa 762   BB bb 840   BB bb 840   BB bb 840   BB bb 840
1928  BB bb 840   BB bb 840   CC aa 759   CC aa 759   CC aa 759   CC aa 759
1929  CC bb 822   CC bb 822   DD aa 845   DD aa 845   DD aa 845   DD bb 959
1930  DD bb 959   DD bb 959   DD bb 959   EE aa 777   EE aa 777   EE bb 768
1931  EE bb 768   EE bb 768   FF aa 670   FF aa 670   FF aa 670   FF aa 670
1932  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
1933  GG aa 634   GG aa 634   GG aa 634   GG aa 634   GG bb 938   GG bb 938
1934  GG bb 938   GG bb 938   HH aa 979   HH aa 979   HH aa 979   HH bb 963
1935  HH bb 963   HH bb 963   HH bb 963   HH bb 963   HH bb 963   II aa 652
1936  II aa 652   II bb 805   II bb 805   II bb 805   II bb 805   II bb 805
1937  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 839   JJ bb 839
1938  JJ bb 839   JJ bb 839}
1939
1940do_execsql_test 1.16.5 {
1941  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1942} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 309   AA bb 309
1943  AA bb 309   AA bb 309   BB aa 247   BB aa 247   BB aa 247   BB aa 247
1944  BB aa 247   BB aa 247   BB bb 633   BB bb 633   BB bb 633   BB bb 633
1945  BB bb 633   BB bb 633   CC aa 158   CC aa 158   CC aa 158   CC aa 158
1946  CC bb 346   CC bb 346   DD aa 224   DD aa 224   DD aa 224   DD bb 238
1947  DD bb 238   DD bb 238   DD bb 238   EE aa 113   EE aa 113   EE bb 252
1948  EE bb 252   EE bb 252   FF aa 208   FF aa 208   FF aa 208   FF aa 208
1949  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1950  GG aa 148   GG aa 148   GG aa 148   GG aa 148   GG bb 160   GG bb 160
1951  GG bb 160   GG bb 160   HH aa 480   HH aa 480   HH aa 480   HH bb 133
1952  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 398
1953  II aa 398   II bb 250   II bb 250   II bb 250   II bb 250   II bb 250
1954  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 257   JJ bb 257
1955  JJ bb 257   JJ bb 257}
1956
1957do_execsql_test 1.16.6 {
1958  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1959} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
1960  AA bb 4113   AA bb 4376   BB aa 6578   BB aa 6680   BB aa 6928   BB aa 6941
1961  BB aa 6947   BB aa 7093   BB bb 6500   BB bb 6548   BB bb 6554   BB bb 6629
1962  BB bb 6635   BB bb 6707   CC aa 2363   CC aa 2515   CC aa 2692   CC aa 2964
1963  CC bb 2300   CC bb 2776   DD aa 3187   DD aa 3776   DD aa 3808   DD bb 3073
1964  DD bb 3238   DD bb 3316   DD bb 3794   EE aa 1762   EE aa 2426   EE bb 1771
1965  EE bb 1910   EE bb 2287   FF aa 4998   FF aa 5001   FF aa 5050   FF aa 5460
1966  FF bb 4730   FF bb 4798   FF bb 4942   FF bb 5094   FF bb 5373   FF bb 5566
1967  GG aa 3834   GG aa 3988   GG aa 4133   GG aa 4320   GG bb 3530   GG bb 3539
1968  GG bb 3624   GG bb 4308   HH aa 4464   HH aa 4653   HH aa 4963   HH bb 4480
1969  HH bb 4713   HH bb 4760   HH bb 5088   HH bb 5113   HH bb 5310   II aa 2988
1970  II aa 3242   II bb 2835   II bb 2969   II bb 3197   II bb 3219   II bb 3390
1971  JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 2961   JJ bb 3446
1972  JJ bb 3464   JJ bb 3543}
1973
1974do_execsql_test 1.16.7 {
1975  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1976} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 1508   AA bb 1751
1977  AA bb 1806   AA bb 2069   BB aa 2111   BB aa 2213   BB aa 2461   BB aa 2474
1978  BB aa 2480   BB aa 2626   BB bb 3627   BB bb 3675   BB bb 3681   BB bb 3756
1979  BB bb 3762   BB bb 3834   CC aa 1195   CC aa 1347   CC aa 1524   CC aa 1796
1980  CC bb 346   CC bb 822   DD aa 480   DD aa 1069   DD aa 1101   DD bb 1748
1981  DD bb 1913   DD bb 1991   DD bb 2469   EE aa 113   EE aa 777   EE bb 881
1982  EE bb 1020   EE bb 1397   FF aa 1493   FF aa 1496   FF aa 1545   FF aa 1955
1983  FF bb 2567   FF bb 2635   FF bb 2779   FF bb 2931   FF bb 3210   FF bb 3403
1984  GG aa 963   GG aa 1117   GG aa 1262   GG aa 1449   GG bb 1933   GG bb 1942
1985  GG bb 2027   GG bb 2711   HH aa 1270   HH aa 1459   HH aa 1769   HH bb 2231
1986  HH bb 2464   HH bb 2511   HH bb 2839   HH bb 2864   HH bb 3061   II aa 398
1987  II aa 652   II bb 1785   II bb 1919   II bb 2147   II bb 2169   II bb 2340
1988  JJ aa 1115   JJ aa 1246   JJ aa 1780   JJ aa 1901   JJ bb 947   JJ bb 1432
1989  JJ bb 1450   JJ bb 1529}
1990
1991do_execsql_test 1.17.1 {
1992  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1993} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
1994  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
1995  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
1996  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
1997  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
1998  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
1999  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2000  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2001  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2002  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2003  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2004  JJ bb {}   JJ bb {}   JJ bb {}}
2005
2006do_execsql_test 1.17.2 {
2007  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2008} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2009  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2010  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2011  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2012  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2013  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2014  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2015  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2016  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2017  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2018  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2019  JJ bb {}   JJ bb {}   JJ bb {}}
2020
2021do_execsql_test 1.17.3 {
2022  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2023} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
2024  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
2025  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
2026  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
2027  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
2028  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
2029  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
2030  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
2031  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
2032  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
2033  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
2034  JJ bb 73   JJ bb 73   JJ bb 73}
2035
2036do_execsql_test 1.17.4 {
2037  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2038} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2039  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2040  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2041  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2042  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2043  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2044  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2045  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2046  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2047  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2048  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2049  JJ bb {}   JJ bb {}   JJ bb {}}
2050
2051do_execsql_test 1.17.5 {
2052  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2053} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2054  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2055  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2056  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2057  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2058  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2059  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2060  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2061  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2062  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2063  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2064  JJ bb {}   JJ bb {}   JJ bb {}}
2065
2066do_execsql_test 1.17.6 {
2067  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2068} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2069  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2070  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2071  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2072  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2073  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2074  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2075  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2076  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2077  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2078  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2079  JJ bb {}   JJ bb {}   JJ bb {}}
2080
2081do_execsql_test 1.17.7 {
2082  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2083} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2084  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2085  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2086  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2087  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2088  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2089  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2090  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2091  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2092  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2093  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2094  JJ bb {}   JJ bb {}   JJ bb {}}
2095
2096do_execsql_test 1.18.1 {
2097  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2098} {AA aa 22701   AA aa 22701   AA aa 22701   AA aa 22701   AA bb 22701
2099  AA bb 22701   AA bb 22701   AA bb 22701   BB aa 19829   BB aa 19829
2100  BB aa 19829   BB aa 19829   BB aa 19829   BB aa 19829   BB bb 19829
2101  BB bb 19829   BB bb 19829   BB bb 19829   BB bb 19829   BB bb 19829
2102  CC aa 22150   CC aa 22150   CC aa 22150   CC aa 22150   CC bb 22150
2103  CC bb 22150   DD aa 21758   DD aa 21758   DD aa 21758   DD bb 21758
2104  DD bb 21758   DD bb 21758   DD bb 21758   EE aa 23019   EE aa 23019
2105  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 17351   FF aa 17351
2106  FF aa 17351   FF aa 17351   FF bb 17351   FF bb 17351   FF bb 17351
2107  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 12883   GG aa 12883
2108  GG aa 12883   GG aa 12883   GG bb 12883   GG bb 12883   GG bb 12883
2109  GG bb 12883   HH aa 7440   HH aa 7440   HH aa 7440   HH bb 7440
2110  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 3800
2111  II aa 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
2112  JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}   JJ bb {}   JJ bb {}
2113  JJ bb {}}
2114
2115do_execsql_test 1.18.2 {
2116  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2117} {AA aa 12840   AA aa 12840   AA aa 12840   AA aa 12840   AA bb 11787
2118  AA bb 11787   AA bb 11787   AA bb 11787   BB aa 11621   BB aa 11621
2119  BB aa 11621   BB aa 11621   BB aa 11621   BB aa 11621   BB bb 8044
2120  BB bb 8044   BB bb 8044   BB bb 8044   BB bb 8044   BB bb 8044   CC aa 7739
2121  CC aa 7739   CC aa 7739   CC aa 7739   CC bb 8734   CC bb 8734
2122  DD aa 10914   DD aa 10914   DD aa 10914   DD bb 9804   DD bb 9804
2123  DD bb 9804   DD bb 9804   EE aa 11785   EE aa 11785   EE bb 12385
2124  EE bb 12385   EE bb 12385   FF aa 13416   FF aa 13416   FF aa 13416
2125  FF aa 13416   FF bb 10961   FF bb 10961   FF bb 10961   FF bb 10961
2126  FF bb 10961   FF bb 10961   GG aa 11954   GG aa 11954   GG aa 11954
2127  GG aa 11954   GG bb 11097   GG bb 11097   GG bb 11097   GG bb 11097
2128  HH aa 10634   HH aa 10634   HH aa 10634   HH bb 7440   HH bb 7440
2129  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 6390   II aa 6390
2130  II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   JJ aa 1786
2131  JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ bb {}   JJ bb {}   JJ bb {}
2132  JJ bb {}}
2133
2134do_execsql_test 1.18.3 {
2135  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2136} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
2137  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
2138  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
2139  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
2140  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
2141  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
2142  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
2143  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
2144  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
2145  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
2146  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
2147  JJ bb 73   JJ bb 73   JJ bb 73}
2148
2149do_execsql_test 1.18.4 {
2150  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2151} {AA aa 870   AA aa 870   AA aa 870   AA aa 870   AA bb 845   AA bb 845
2152  AA bb 845   AA bb 845   BB aa 959   BB aa 959   BB aa 959   BB aa 959
2153  BB aa 959   BB aa 959   BB bb 959   BB bb 959   BB bb 959   BB bb 959
2154  BB bb 959   BB bb 959   CC aa 959   CC aa 959   CC aa 959   CC aa 959
2155  CC bb 959   CC bb 959   DD aa 959   DD aa 959   DD aa 959   DD bb 938
2156  DD bb 938   DD bb 938   DD bb 938   EE aa 938   EE aa 938   EE bb 979
2157  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
2158  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
2159  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
2160  GG bb 979   GG bb 979   HH aa 963   HH aa 963   HH aa 963   HH bb 899
2161  HH bb 899   HH bb 899   HH bb 899   HH bb 899   HH bb 899   II aa 899
2162  II aa 899   II bb 899   II bb 899   II bb 899   II bb 899   II bb 899
2163  JJ aa 839   JJ aa 839   JJ aa 839   JJ aa 839   JJ bb {}   JJ bb {}
2164  JJ bb {}   JJ bb {}}
2165
2166do_execsql_test 1.18.5 {
2167  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2168} {AA aa 158   AA aa 158   AA aa 158   AA aa 158   AA bb 158   AA bb 158
2169  AA bb 158   AA bb 158   BB aa 158   BB aa 158   BB aa 158   BB aa 158
2170  BB aa 158   BB aa 158   BB bb 113   BB bb 113   BB bb 113   BB bb 113
2171  BB bb 113   BB bb 113   CC aa 113   CC aa 113   CC aa 113   CC aa 113
2172  CC bb 113   CC bb 113   DD aa 102   DD aa 102   DD aa 102   DD bb 102
2173  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
2174  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
2175  FF bb 133   FF bb 133   FF bb 133   FF bb 133   FF bb 133   FF bb 133
2176  GG aa 133   GG aa 133   GG aa 133   GG aa 133   GG bb 113   GG bb 113
2177  GG bb 113   GG bb 113   HH aa 113   HH aa 113   HH aa 113   HH bb 113
2178  HH bb 113   HH bb 113   HH bb 113   HH bb 113   HH bb 113   II aa 113
2179  II aa 113   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
2180  JJ aa 257   JJ aa 257   JJ aa 257   JJ aa 257   JJ bb {}   JJ bb {}
2181  JJ bb {}   JJ bb {}}
2182
2183do_execsql_test 1.18.6 {
2184  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2185} {AA aa 22701   AA aa 22701   AA aa 22701   AA aa 22701   AA bb 22701
2186  AA bb 22701   AA bb 22701   AA bb 22701   BB aa 19829   BB aa 19829
2187  BB aa 19829   BB aa 19829   BB aa 19829   BB aa 19829   BB bb 19829
2188  BB bb 19829   BB bb 19829   BB bb 19829   BB bb 19829   BB bb 19829
2189  CC aa 22150   CC aa 22150   CC aa 22150   CC aa 22150   CC bb 22150
2190  CC bb 22150   DD aa 21758   DD aa 21758   DD aa 21758   DD bb 21758
2191  DD bb 21758   DD bb 21758   DD bb 21758   EE aa 23019   EE aa 23019
2192  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 17351   FF aa 17351
2193  FF aa 17351   FF aa 17351   FF bb 17351   FF bb 17351   FF bb 17351
2194  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 12883   GG aa 12883
2195  GG aa 12883   GG aa 12883   GG bb 12883   GG bb 12883   GG bb 12883
2196  GG bb 12883   HH aa 7440   HH aa 7440   HH aa 7440   HH bb 7440
2197  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 3800
2198  II aa 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
2199  JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}   JJ bb {}   JJ bb {}
2200  JJ bb {}}
2201
2202do_execsql_test 1.18.7 {
2203  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2204} {AA aa 12840   AA aa 12840   AA aa 12840   AA aa 12840   AA bb 11787
2205  AA bb 11787   AA bb 11787   AA bb 11787   BB aa 11621   BB aa 11621
2206  BB aa 11621   BB aa 11621   BB aa 11621   BB aa 11621   BB bb 8044
2207  BB bb 8044   BB bb 8044   BB bb 8044   BB bb 8044   BB bb 8044   CC aa 7739
2208  CC aa 7739   CC aa 7739   CC aa 7739   CC bb 8734   CC bb 8734
2209  DD aa 10914   DD aa 10914   DD aa 10914   DD bb 9804   DD bb 9804
2210  DD bb 9804   DD bb 9804   EE aa 11785   EE aa 11785   EE bb 12385
2211  EE bb 12385   EE bb 12385   FF aa 13416   FF aa 13416   FF aa 13416
2212  FF aa 13416   FF bb 10961   FF bb 10961   FF bb 10961   FF bb 10961
2213  FF bb 10961   FF bb 10961   GG aa 11954   GG aa 11954   GG aa 11954
2214  GG aa 11954   GG bb 11097   GG bb 11097   GG bb 11097   GG bb 11097
2215  HH aa 10634   HH aa 10634   HH aa 10634   HH bb 7440   HH bb 7440
2216  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 6390   II aa 6390
2217  II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   JJ aa 1786
2218  JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ bb {}   JJ bb {}   JJ bb {}
2219  JJ bb {}}
2220
2221do_execsql_test 1.19.1 {
2222  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2223} {AA aa 40052   AA aa 40052   AA aa 40052   AA aa 40052   AA bb 40052
2224  AA bb 40052   AA bb 40052   AA bb 40052   BB aa 32712   BB aa 32712
2225  BB aa 32712   BB aa 32712   BB aa 32712   BB aa 32712   BB bb 32712
2226  BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712
2227  CC aa 29590   CC aa 29590   CC aa 29590   CC aa 29590   CC bb 29590
2228  CC bb 29590   DD aa 25558   DD aa 25558   DD aa 25558   DD bb 25558
2229  DD bb 25558   DD bb 25558   DD bb 25558   EE aa 23019   EE aa 23019
2230  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 17351   FF aa 17351
2231  FF aa 17351   FF aa 17351   FF bb 17351   FF bb 17351   FF bb 17351
2232  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 12883   GG aa 12883
2233  GG aa 12883   GG aa 12883   GG bb 12883   GG bb 12883   GG bb 12883
2234  GG bb 12883   HH aa 7440   HH aa 7440   HH aa 7440   HH bb 7440
2235  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 3800
2236  II aa 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
2237  JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}   JJ bb {}   JJ bb {}
2238  JJ bb {}}
2239
2240do_execsql_test 1.19.2 {
2241  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2242} {AA aa 42430   AA aa 42430   AA aa 42430   AA aa 42430   AA bb 40052
2243  AA bb 40052   AA bb 40052   AA bb 40052   BB aa 37179   BB aa 37179
2244  BB aa 37179   BB aa 37179   BB aa 37179   BB aa 37179   BB bb 32712
2245  BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712
2246  CC aa 30758   CC aa 30758   CC aa 30758   CC aa 30758   CC bb 29590
2247  CC bb 29590   DD aa 28265   DD aa 28265   DD aa 28265   DD bb 25558
2248  DD bb 25558   DD bb 25558   DD bb 25558   EE aa 24668   EE aa 24668
2249  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 20856   FF aa 20856
2250  FF aa 20856   FF aa 20856   FF bb 17351   FF bb 17351   FF bb 17351
2251  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 15754   GG aa 15754
2252  GG aa 15754   GG aa 15754   GG bb 12883   GG bb 12883   GG bb 12883
2253  GG bb 12883   HH aa 10634   HH aa 10634   HH aa 10634   HH bb 7440
2254  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 6390
2255  II aa 6390   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
2256  JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ bb {}   JJ bb {}
2257  JJ bb {}   JJ bb {}}
2258
2259do_execsql_test 1.19.3 {
2260  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2261} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
2262  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
2263  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
2264  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
2265  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
2266  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
2267  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
2268  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
2269  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
2270  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
2271  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
2272  JJ bb 73   JJ bb 73   JJ bb 73}
2273
2274do_execsql_test 1.19.4 {
2275  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2276} {AA aa 979   AA aa 979   AA aa 979   AA aa 979   AA bb 979   AA bb 979
2277  AA bb 979   AA bb 979   BB aa 979   BB aa 979   BB aa 979   BB aa 979
2278  BB aa 979   BB aa 979   BB bb 979   BB bb 979   BB bb 979   BB bb 979
2279  BB bb 979   BB bb 979   CC aa 979   CC aa 979   CC aa 979   CC aa 979
2280  CC bb 979   CC bb 979   DD aa 979   DD aa 979   DD aa 979   DD bb 979
2281  DD bb 979   DD bb 979   DD bb 979   EE aa 979   EE aa 979   EE bb 979
2282  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
2283  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
2284  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
2285  GG bb 979   GG bb 979   HH aa 963   HH aa 963   HH aa 963   HH bb 899
2286  HH bb 899   HH bb 899   HH bb 899   HH bb 899   HH bb 899   II aa 899
2287  II aa 899   II bb 899   II bb 899   II bb 899   II bb 899   II bb 899
2288  JJ aa 839   JJ aa 839   JJ aa 839   JJ aa 839   JJ bb {}   JJ bb {}
2289  JJ bb {}   JJ bb {}}
2290
2291do_execsql_test 1.19.5 {
2292  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2293} {AA aa 102   AA aa 102   AA aa 102   AA aa 102   AA bb 102   AA bb 102
2294  AA bb 102   AA bb 102   BB aa 102   BB aa 102   BB aa 102   BB aa 102
2295  BB aa 102   BB aa 102   BB bb 102   BB bb 102   BB bb 102   BB bb 102
2296  BB bb 102   BB bb 102   CC aa 102   CC aa 102   CC aa 102   CC aa 102
2297  CC bb 102   CC bb 102   DD aa 102   DD aa 102   DD aa 102   DD bb 102
2298  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
2299  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
2300  FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113
2301  GG aa 113   GG aa 113   GG aa 113   GG aa 113   GG bb 113   GG bb 113
2302  GG bb 113   GG bb 113   HH aa 113   HH aa 113   HH aa 113   HH bb 113
2303  HH bb 113   HH bb 113   HH bb 113   HH bb 113   HH bb 113   II aa 113
2304  II aa 113   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
2305  JJ aa 257   JJ aa 257   JJ aa 257   JJ aa 257   JJ bb {}   JJ bb {}
2306  JJ bb {}   JJ bb {}}
2307
2308do_execsql_test 1.19.6 {
2309  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2310} {AA aa 40052   AA aa 40052   AA aa 40052   AA aa 40052   AA bb 40052
2311  AA bb 40052   AA bb 40052   AA bb 40052   BB aa 32712   BB aa 32712
2312  BB aa 32712   BB aa 32712   BB aa 32712   BB aa 32712   BB bb 32712
2313  BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712
2314  CC aa 29590   CC aa 29590   CC aa 29590   CC aa 29590   CC bb 29590
2315  CC bb 29590   DD aa 25558   DD aa 25558   DD aa 25558   DD bb 25558
2316  DD bb 25558   DD bb 25558   DD bb 25558   EE aa 23019   EE aa 23019
2317  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 17351   FF aa 17351
2318  FF aa 17351   FF aa 17351   FF bb 17351   FF bb 17351   FF bb 17351
2319  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 12883   GG aa 12883
2320  GG aa 12883   GG aa 12883   GG bb 12883   GG bb 12883   GG bb 12883
2321  GG bb 12883   HH aa 7440   HH aa 7440   HH aa 7440   HH bb 7440
2322  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 3800
2323  II aa 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
2324  JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}   JJ bb {}   JJ bb {}
2325  JJ bb {}}
2326
2327do_execsql_test 1.19.7 {
2328  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2329} {AA aa 42430   AA aa 42430   AA aa 42430   AA aa 42430   AA bb 40052
2330  AA bb 40052   AA bb 40052   AA bb 40052   BB aa 37179   BB aa 37179
2331  BB aa 37179   BB aa 37179   BB aa 37179   BB aa 37179   BB bb 32712
2332  BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712
2333  CC aa 30758   CC aa 30758   CC aa 30758   CC aa 30758   CC bb 29590
2334  CC bb 29590   DD aa 28265   DD aa 28265   DD aa 28265   DD bb 25558
2335  DD bb 25558   DD bb 25558   DD bb 25558   EE aa 24668   EE aa 24668
2336  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 20856   FF aa 20856
2337  FF aa 20856   FF aa 20856   FF bb 17351   FF bb 17351   FF bb 17351
2338  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 15754   GG aa 15754
2339  GG aa 15754   GG aa 15754   GG bb 12883   GG bb 12883   GG bb 12883
2340  GG bb 12883   HH aa 10634   HH aa 10634   HH aa 10634   HH bb 7440
2341  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 6390
2342  II aa 6390   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
2343  JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ bb {}   JJ bb {}
2344  JJ bb {}   JJ bb {}}
2345
2346do_execsql_test 2.1.1 {
2347  SELECT row_number() OVER win
2348    FROM t3
2349    WINDOW win AS (
2350      ORDER BY c, b, a
2351      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE NO OTHERS
2352    )
2353} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17
2354  18   19   20   21   22   23   24   25   26   27   28   29   30   31   32
2355  33   34   35   36   37   38   39   40   41   42   43   44   45   46   47
2356  48   49   50   51   52   53   54   55   56   57   58   59   60   61   62
2357  63   64   65   66   67   68   69   70   71   72   73   74   75   76   77
2358  78   79   80}
2359
2360do_execsql_test 2.1.2 {
2361  SELECT nth_value(c, 14) OVER win
2362    FROM t3
2363    WINDOW win AS (
2364      ORDER BY c, b, a
2365      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE NO OTHERS
2366    )
2367} {247   247   247   247   247   247   247   247   247   247   247   247   247
2368  247   247   247   247   247   247   247   247   247   247   247   247   247
2369  247   247   247   247   247   247   247   247   247   247   247   247   247
2370  247   247   247   247   247   247   247   247   247   247   247   247   247
2371  247   247   247   247   247   247   247   247   247   247   247   247   247
2372  247   247   247   247   247   247   247   247   247   247   247   247   247
2373  247   247}
2374
2375do_execsql_test 2.1.3 {
2376  SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
2377    WINDOW win AS (
2378      ORDER BY c, b, a
2379      ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE NO OTHERS
2380    ) ORDER BY a, b, c;
2381} {102 223 1358   102 239 2293   102 911 38097   102 934 39960   102 309 4159
2382  102 572 10643   102 627 13069   102 870 35417   102 247 2540   102 393 6608
2383  102 399 7405   102 412 7817   102 660 16277   102 762 24077   102 633 14331
2384  102 705 19673   102 711 20384   102 786 27176   102 792 28758
2385  102 840 32858   102 158 767   102 430 8668   102 607 11824   102 759 23315
2386  102 346 5506   102 822 31179   102 224 1582   102 256 3298   102 845 34547
2387  102 238 2054   102 716 21100   102 794 29552   102 959 42795   102 113 215
2388  102 777 26390   102 252 3042   102 629 13698   102 768 25613   102 208 1135
2389  102 618 12442   102 667 16944   102 670 17614   102 102 102   102 295 3850
2390  102 574 11217   102 726 21826   102 870 36287   102 938 40898   102 148 609
2391  102 335 4824   102 480 9591   102 634 14965   102 160 927   102 844 33702
2392  102 929 39026   102 938 41836   102 480 10071   102 790 27966
2393  102 979 44737   102 133 461   102 330 4489   102 355 6215   102 683 18968
2394  102 730 22556   102 963 43758   102 398 7006   102 652 15617   102 250 2790
2395  102 421 8238   102 443 9111   102 671 18285   102 805 30357   102 113 328
2396  102 234 1816   102 768 24845   102 899 37186   102 257 3555   102 336 5160
2397  102 354 5860   102 839 32018}
2398
2399do_execsql_test 2.2.1 {
2400  SELECT row_number() OVER win
2401    FROM t3
2402    WINDOW win AS (
2403      ORDER BY c, b, a
2404      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW
2405    )
2406} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17
2407  18   19   20   21   22   23   24   25   26   27   28   29   30   31   32
2408  33   34   35   36   37   38   39   40   41   42   43   44   45   46   47
2409  48   49   50   51   52   53   54   55   56   57   58   59   60   61   62
2410  63   64   65   66   67   68   69   70   71   72   73   74   75   76   77
2411  78   79   80}
2412
2413do_execsql_test 2.2.2 {
2414  SELECT nth_value(c, 14) OVER win
2415    FROM t3
2416    WINDOW win AS (
2417      ORDER BY c, b, a
2418      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW
2419    )
2420} {250   250   250   250   250   250   250   250   250   250   250   250   250
2421  250   247   247   247   247   247   247   247   247   247   247   247   247
2422  247   247   247   247   247   247   247   247   247   247   247   247   247
2423  247   247   247   247   247   247   247   247   247   247   247   247   247
2424  247   247   247   247   247   247   247   247   247   247   247   247   247
2425  247   247   247   247   247   247   247   247   247   247   247   247   247
2426  247   247}
2427
2428do_execsql_test 2.2.3 {
2429  SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
2430    WINDOW win AS (
2431      ORDER BY c, b, a
2432      ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE CURRENT ROW
2433    ) ORDER BY a, b, c;
2434} {102 208 1135   102 238 2054   102 899 37186   102 929 39026   102 295 3850
2435  102 480 10071   102 618 12442   102 845 34547   102 239 2293   102 355 6215
2436  102 398 7006   102 399 7405   102 652 15617   102 759 23315   102 629 13698
2437  102 683 18968   102 705 19673   102 777 26390   102 790 27966
2438  102 839 32018   102 148 609   102 421 8238   102 574 11217   102 730 22556
2439  102 336 5160   102 805 30357   102 223 1358   102 252 3042   102 844 33702
2440  102 234 1816   102 711 20384   102 792 28758   102 938 41836   102 102 102
2441  102 768 25613   102 250 2790   102 627 13069   102 768 24845   102 160 927
2442  102 607 11824   102 660 16277   102 667 16944   {} {} {}   102 257 3555
2443  102 572 10643   102 716 21100   102 870 35417   102 934 39960   102 133 461
2444  102 330 4489   102 443 9111   102 633 14331   102 158 767   102 840 32858
2445  102 911 38097   102 938 40898   102 480 9591   102 786 27176
2446  102 963 43758   102 113 328   102 309 4159   102 354 5860   102 671 18285
2447  102 726 21826   102 959 42795   102 393 6608   102 634 14965   102 247 2540
2448  102 412 7817   102 430 8668   102 670 17614   102 794 29552   102 113 215
2449  102 224 1582   102 762 24077   102 870 36287   102 256 3298   102 335 4824
2450  102 346 5506   102 822 31179}
2451
2452do_execsql_test 2.3.1 {
2453  SELECT row_number() OVER win
2454    FROM t3
2455    WINDOW win AS (
2456      ORDER BY c, b, a
2457      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE GROUP
2458    )
2459} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17
2460  18   19   20   21   22   23   24   25   26   27   28   29   30   31   32
2461  33   34   35   36   37   38   39   40   41   42   43   44   45   46   47
2462  48   49   50   51   52   53   54   55   56   57   58   59   60   61   62
2463  63   64   65   66   67   68   69   70   71   72   73   74   75   76   77
2464  78   79   80}
2465
2466do_execsql_test 2.3.2 {
2467  SELECT nth_value(c, 14) OVER win
2468    FROM t3
2469    WINDOW win AS (
2470      ORDER BY c, b, a
2471      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE GROUP
2472    )
2473} {250   250   250   250   250   250   250   250   250   250   250   250   250
2474  250   247   247   247   247   247   247   247   247   247   247   247   247
2475  247   247   247   247   247   247   247   247   247   247   247   247   247
2476  247   247   247   247   247   247   247   247   247   247   247   247   247
2477  247   247   247   247   247   247   247   247   247   247   247   247   247
2478  247   247   247   247   247   247   247   247   247   247   247   247   247
2479  247   247}
2480
2481do_execsql_test 2.3.3 {
2482  SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
2483    WINDOW win AS (
2484      ORDER BY c, b, a
2485      ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE GROUP
2486    ) ORDER BY a, b, c;
2487} {102 208 1135   102 238 2054   102 899 37186   102 929 39026   102 295 3850
2488  102 480 10071   102 618 12442   102 845 34547   102 239 2293   102 355 6215
2489  102 398 7006   102 399 7405   102 652 15617   102 759 23315   102 629 13698
2490  102 683 18968   102 705 19673   102 777 26390   102 790 27966
2491  102 839 32018   102 148 609   102 421 8238   102 574 11217   102 730 22556
2492  102 336 5160   102 805 30357   102 223 1358   102 252 3042   102 844 33702
2493  102 234 1816   102 711 20384   102 792 28758   102 938 41836   102 102 102
2494  102 768 25613   102 250 2790   102 627 13069   102 768 24845   102 160 927
2495  102 607 11824   102 660 16277   102 667 16944   {} {} {}   102 257 3555
2496  102 572 10643   102 716 21100   102 870 35417   102 934 39960   102 133 461
2497  102 330 4489   102 443 9111   102 633 14331   102 158 767   102 840 32858
2498  102 911 38097   102 938 40898   102 480 9591   102 786 27176
2499  102 963 43758   102 113 328   102 309 4159   102 354 5860   102 671 18285
2500  102 726 21826   102 959 42795   102 393 6608   102 634 14965   102 247 2540
2501  102 412 7817   102 430 8668   102 670 17614   102 794 29552   102 113 215
2502  102 224 1582   102 762 24077   102 870 36287   102 256 3298   102 335 4824
2503  102 346 5506   102 822 31179}
2504
2505do_execsql_test 2.4.1 {
2506  SELECT row_number() OVER win
2507    FROM t3
2508    WINDOW win AS (
2509      ORDER BY c, b, a
2510      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE TIES
2511    )
2512} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17
2513  18   19   20   21   22   23   24   25   26   27   28   29   30   31   32
2514  33   34   35   36   37   38   39   40   41   42   43   44   45   46   47
2515  48   49   50   51   52   53   54   55   56   57   58   59   60   61   62
2516  63   64   65   66   67   68   69   70   71   72   73   74   75   76   77
2517  78   79   80}
2518
2519do_execsql_test 2.4.2 {
2520  SELECT nth_value(c, 14) OVER win
2521    FROM t3
2522    WINDOW win AS (
2523      ORDER BY c, b, a
2524      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE TIES
2525    )
2526} {247   247   247   247   247   247   247   247   247   247   247   247   247
2527  247   247   247   247   247   247   247   247   247   247   247   247   247
2528  247   247   247   247   247   247   247   247   247   247   247   247   247
2529  247   247   247   247   247   247   247   247   247   247   247   247   247
2530  247   247   247   247   247   247   247   247   247   247   247   247   247
2531  247   247   247   247   247   247   247   247   247   247   247   247   247
2532  247   247}
2533
2534do_execsql_test 2.4.3 {
2535  SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
2536    WINDOW win AS (
2537      ORDER BY c, b, a
2538      ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE TIES
2539    ) ORDER BY a, b, c;
2540} {102 223 1358   102 239 2293   102 911 38097   102 934 39960   102 309 4159
2541  102 572 10643   102 627 13069   102 870 35417   102 247 2540   102 393 6608
2542  102 399 7405   102 412 7817   102 660 16277   102 762 24077   102 633 14331
2543  102 705 19673   102 711 20384   102 786 27176   102 792 28758
2544  102 840 32858   102 158 767   102 430 8668   102 607 11824   102 759 23315
2545  102 346 5506   102 822 31179   102 224 1582   102 256 3298   102 845 34547
2546  102 238 2054   102 716 21100   102 794 29552   102 959 42795   102 113 215
2547  102 777 26390   102 252 3042   102 629 13698   102 768 25613   102 208 1135
2548  102 618 12442   102 667 16944   102 670 17614   102 102 102   102 295 3850
2549  102 574 11217   102 726 21826   102 870 36287   102 938 40898   102 148 609
2550  102 335 4824   102 480 9591   102 634 14965   102 160 927   102 844 33702
2551  102 929 39026   102 938 41836   102 480 10071   102 790 27966
2552  102 979 44737   102 133 461   102 330 4489   102 355 6215   102 683 18968
2553  102 730 22556   102 963 43758   102 398 7006   102 652 15617   102 250 2790
2554  102 421 8238   102 443 9111   102 671 18285   102 805 30357   102 113 328
2555  102 234 1816   102 768 24845   102 899 37186   102 257 3555   102 336 5160
2556  102 354 5860   102 839 32018}
2557
2558#==========================================================================
2559
2560do_execsql_test 3.0 {
2561  DROP TABLE IF EXISTS t1;
2562  CREATE TABLE t1(a REAL, b INTEGER);
2563  INSERT INTO t1 VALUES
2564      (5, 10), (10, 20), (13, 26), (13, 26),
2565      (15, 30), (20, 40), (22,80), (30, 90);
2566} {}
2567
2568do_execsql_test 3.1 {
2569  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING )
2570} {5 30   10 112   13 102   13 102   15 142   20 150   22 120   30 90}
2571
2572do_execsql_test 3.2 {
2573  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 10 PRECEDING AND 5 PRECEDING )
2574} {5 {}   10 10   13 10   13 10   15 30   20 102   22 82   30 120}
2575
2576do_execsql_test 3.3 {
2577  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 2 FOLLOWING AND 3 FOLLOWING )
2578} {5 {}   10 52   13 30   13 30   15 {}   20 80   22 {}   30 {}}
2579
2580do_execsql_test 3.4 {
2581  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING )
2582} {30 90   22 120   20 150   15 142   13 102   13 102   10 112   5 30}
2583
2584do_execsql_test 3.5 {
2585  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 10 PRECEDING AND 5 PRECEDING )
2586} {30 {}   22 90   20 90   15 120   13 120   13 120   10 70   5 102}
2587
2588do_execsql_test 3.6 {
2589  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 2 FOLLOWING AND 3 FOLLOWING )
2590} {30 {}   22 40   20 {}   15 52   13 20   13 20   10 {}   5 {}}
2591
2592do_execsql_test 3.7 {
2593  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 5.1 PRECEDING AND 5.3 FOLLOWING )
2594} {5 30   10 112   13 102   13 102   15 142   20 150   22 120   30 90}
2595
2596do_execsql_test 3.8 {
2597  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 10.2 PRECEDING AND 5.4 PRECEDING )
2598} {5 {}   10 {}   13 10   13 10   15 10   20 72   22 82   30 120}
2599
2600do_execsql_test 3.9 {
2601  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 2.6 FOLLOWING AND 3.5 FOLLOWING )
2602} {5 {}   10 52   13 {}   13 {}   15 {}   20 {}   22 {}   30 {}}
2603
2604do_execsql_test 3.10 {
2605  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 5.7 PRECEDING AND 5.8 FOLLOWING )
2606} {30 90   22 120   20 150   15 142   13 102   13 102   10 112   5 30}
2607
2608do_execsql_test 3.11 {
2609  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN UNBOUNDED PRECEDING AND 5.9 PRECEDING )
2610} {30 {}   22 90   20 90   15 170   13 210   13 210   10 210   5 292}
2611
2612do_execsql_test 3.12 {
2613  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 2.1 FOLLOWING AND UNBOUNDED FOLLOWING )
2614} {30 232   22 112   20 112   15 30   13 30   13 30   10 10   5 {}}
2615
2616#==========================================================================
2617
2618do_execsql_test 4.0 {
2619  DROP TABLE IF EXISTS t1;
2620  CREATE TABLE t1(a INTEGER, b INTEGER);
2621  INSERT INTO t1 VALUES
2622    (NULL, 1), (NULL, 2), (NULL, 3), (10, 4), (10, 5);
2623} {}
2624
2625do_execsql_test 4.1.1 {
2626  SELECT sum(b) OVER (
2627    ORDER BY a RANGE BETWEEN 5 PRECEDING AND 10 FOLLOWING
2628  ) FROM t1 ORDER BY 1;
2629} {6   6   6   9   9}
2630
2631do_execsql_test 4.1.2 {
2632  SELECT sum(b) OVER (
2633    ORDER BY a DESC RANGE BETWEEN 5 PRECEDING AND 10 FOLLOWING
2634  ) FROM t1 ORDER BY 1;
2635} {6   6   6   9   9}
2636
2637do_execsql_test 4.2.1 {
2638  SELECT sum(b) OVER (
2639    ORDER BY a RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING
2640  ) FROM t1 ORDER BY 1 ;
2641} {{}   {}   6   6   6}
2642
2643do_execsql_test 4.2.2 {
2644  SELECT sum(b) OVER (
2645    ORDER BY a DESC RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING
2646  ) FROM t1 ORDER BY 1 ;
2647} {{}   {}   6   6   6}
2648
2649do_execsql_test 4.3.1 {
2650  SELECT sum(b) OVER (
2651    ORDER BY a  RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING
2652  ) FROM t1 ORDER BY 1 ;
2653} {6   6   6   15   15}
2654
2655do_execsql_test 4.4.1 {
2656  SELECT sum(b) OVER (
2657    ORDER BY a  ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
2658  ) FROM t1 ORDER BY 1 ;
2659} {3   6   9   9   12}
2660
2661do_execsql_test 4.4.2 {
2662  SELECT sum(b) OVER (
2663    ORDER BY a DESC  ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
2664  ) FROM t1 ORDER BY 1 ;
2665} {5   6   8   9   10}
2666
2667finish_test
2668