xref: /sqlite-3.40.0/test/window3.test (revision ec891fd4)
1# 2018 May 31
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 window3
21
22do_execsql_test 1.0 {
23  DROP TABLE IF EXISTS t2;
24  CREATE TABLE t2(a INTEGER PRIMARY KEY, b INTEGER);
25  INSERT INTO t2(a, b) VALUES
26  (1,0), (2,74), (3,41), (4,74), (5,23), (6,99), (7,26), (8,33), (9,2),
27  (10,89), (11,81), (12,96), (13,59), (14,38), (15,68), (16,39), (17,62),
28  (18,91), (19,46), (20,6), (21,99), (22,97), (23,27), (24,46), (25,78),
29  (26,54), (27,97), (28,8), (29,67), (30,29), (31,93), (32,84), (33,77),
30  (34,23), (35,16), (36,16), (37,93), (38,65), (39,35), (40,47), (41,7),
31  (42,86), (43,74), (44,61), (45,91), (46,85), (47,24), (48,85), (49,43),
32  (50,59), (51,12), (52,32), (53,56), (54,3), (55,91), (56,22), (57,90),
33  (58,55), (59,15), (60,28), (61,89), (62,25), (63,47), (64,1), (65,56),
34  (66,40), (67,43), (68,56), (69,16), (70,75), (71,36), (72,89), (73,98),
35  (74,76), (75,81), (76,4), (77,94), (78,42), (79,30), (80,78), (81,33),
36  (82,29), (83,53), (84,63), (85,2), (86,87), (87,37), (88,80), (89,84),
37  (90,72), (91,41), (92,9), (93,61), (94,73), (95,95), (96,65), (97,13),
38  (98,58), (99,96), (100,98), (101,1), (102,21), (103,74), (104,65), (105,35),
39  (106,5), (107,73), (108,11), (109,51), (110,87), (111,41), (112,12), (113,8),
40  (114,20), (115,31), (116,31), (117,15), (118,95), (119,22), (120,73),
41  (121,79), (122,88), (123,34), (124,8), (125,11), (126,49), (127,34),
42  (128,90), (129,59), (130,96), (131,60), (132,55), (133,75), (134,77),
43  (135,44), (136,2), (137,7), (138,85), (139,57), (140,74), (141,29), (142,70),
44  (143,59), (144,19), (145,39), (146,26), (147,26), (148,47), (149,80),
45  (150,90), (151,36), (152,58), (153,47), (154,9), (155,72), (156,72), (157,66),
46  (158,33), (159,93), (160,75), (161,64), (162,81), (163,9), (164,23), (165,37),
47  (166,13), (167,12), (168,14), (169,62), (170,91), (171,36), (172,91),
48  (173,33), (174,15), (175,34), (176,36), (177,99), (178,3), (179,95), (180,69),
49  (181,58), (182,52), (183,30), (184,50), (185,84), (186,10), (187,84),
50  (188,33), (189,21), (190,39), (191,44), (192,58), (193,30), (194,38),
51  (195,34), (196,83), (197,27), (198,82), (199,17), (200,7);
52} {}
53
54do_execsql_test 1.1 {
55  SELECT max(b) OVER (
56    ORDER BY a
57  ) FROM t2
58} {0   74   74   74   74   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
59
60do_execsql_test 1.1.2.1 {
61  SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
62} {0   74   74   74   74   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
63
64do_execsql_test 1.1.2.2 {
65  SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
66} {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
67
68do_execsql_test 1.1.3.1 {
69  SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
70} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
71
72do_execsql_test 1.1.3.2 {
73  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
74} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
75
76do_execsql_test 1.1.4.1 {
77  SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
78} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
79
80do_execsql_test 1.1.4.2 {
81  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
82} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
83
84do_execsql_test 1.1.4.3 {
85  SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
86} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
87
88do_execsql_test 1.1.4.4 {
89  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
90} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
91
92do_execsql_test 1.1.4.5 {
93  SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
94} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
95
96do_execsql_test 1.1.4.6 {
97  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
98} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
99
100do_execsql_test 1.1.5.1 {
101  SELECT rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
102} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
103
104do_execsql_test 1.1.5.2 {
105  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
106} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
107
108do_execsql_test 1.1.5.3 {
109  SELECT rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
110} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
111
112do_execsql_test 1.1.5.4 {
113  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
114} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
115
116do_execsql_test 1.1.5.5 {
117  SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
118} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
119
120do_execsql_test 1.1.5.6 {
121  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
122} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
123
124do_execsql_test 1.1.6.1 {
125  SELECT
126      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ),
127      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ),
128      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW )
129    FROM t2
130} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
131
132do_test 1.1.7.1 {
133  set myres {}
134  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
135    lappend myres [format %.2f [set r]]
136  }
137  set myres
138} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
139
140do_test 1.1.7.2 {
141  set myres {}
142  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
143    lappend myres [format %.2f [set r]]
144  }
145  set myres
146} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
147
148do_test 1.1.7.3 {
149  set myres {}
150  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
151    lappend myres [format %.2f [set r]]
152  }
153  set myres
154} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
155
156do_test 1.1.7.4 {
157  set myres {}
158  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
159    lappend myres [format %.2f [set r]]
160  }
161  set myres
162} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
163
164do_test 1.1.7.5 {
165  set myres {}
166  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
167    lappend myres [format %.2f [set r]]
168  }
169  set myres
170} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
171
172do_test 1.1.7.6 {
173  set myres {}
174  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] {
175    lappend myres [format %.2f [set r]]
176  }
177  set myres
178} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
179
180do_test 1.1.8.1 {
181  set myres {}
182  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
183    lappend myres [format %.2f [set r]]
184  }
185  set myres
186} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
187
188do_test 1.1.8.2 {
189  set myres {}
190  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
191    lappend myres [format %.2f [set r]]
192  }
193  set myres
194} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
195
196do_test 1.1.8.3 {
197  set myres {}
198  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
199    lappend myres [format %.2f [set r]]
200  }
201  set myres
202} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
203
204do_test 1.1.8.4 {
205  set myres {}
206  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
207    lappend myres [format %.2f [set r]]
208  }
209  set myres
210} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
211
212do_test 1.1.8.5 {
213  set myres {}
214  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
215    lappend myres [format %.2f [set r]]
216  }
217  set myres
218} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
219
220do_test 1.1.8.6 {
221  set myres {}
222  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
223    lappend myres [format %.2f [set r]]
224  }
225  set myres
226} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
227
228do_test 1.1.8.1 {
229  set myres {}
230  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
231    lappend myres [format %.2f [set r]]
232  }
233  set myres
234} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
235
236do_test 1.1.8.2 {
237  set myres {}
238  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
239    lappend myres [format %.2f [set r]]
240  }
241  set myres
242} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
243
244do_test 1.1.8.3 {
245  set myres {}
246  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
247    lappend myres [format %.2f [set r]]
248  }
249  set myres
250} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
251
252do_test 1.1.8.4 {
253  set myres {}
254  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
255    lappend myres [format %.2f [set r]]
256  }
257  set myres
258} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
259
260do_test 1.1.8.5 {
261  set myres {}
262  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
263    lappend myres [format %.2f [set r]]
264  }
265  set myres
266} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
267
268do_test 1.1.8.6 {
269  set myres {}
270  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] {
271    lappend myres [format %.2f [set r]]
272  }
273  set myres
274} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
275
276do_execsql_test 1.1.9.1 {
277  SELECT last_value(a+b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
278} {1   76   44   78   28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279   224   280   216   207}
279
280do_execsql_test 1.1.9.2 {
281  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
282} {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
283
284do_execsql_test 1.1.9.3 {
285  SELECT last_value(a+b) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
286} {1   65   102   11   87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171   198   105   120   276}
287
288do_execsql_test 1.1.9.4 {
289  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
290} {1   196   134   109   213   223   106   234   191   212   168   229   147   218   240   65   102   119   136   123   210   146   147   44   132   152   160   105   154   92   156   243   109   136   146   261   263   11   87   138   63   124   179   78   141   84   120   234   79   231   162   227   228   280   57   181   110   179   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   279   124   130   252   80   182   71   157   161   209   229   179   235   80   225   76   78   117   177   214   116   173   269   271   171   111   74   132   189   87   74   140   113   187   103   161   169   145   208   235   131   133   223   190   213   274   26   51   52   85   33   172   173   107   187   207   212   65   70   109   121   124   223   150   128   108   195   226   48   144   207   216   50   224   124   202   87   110   195   200   196   96   110   211   173   197   119   124   36   121   132   88   52   232   156   210   239   250   83   103   158   210   171   198   101   163   172   163   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150   161   105   120   276}
291
292do_execsql_test 1.1.9.5 {
293  SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
294} {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
295
296do_execsql_test 1.1.9.6 {
297  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
298} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
299
300do_execsql_test 1.1.10.1 {
301  SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
302} {0   {}   {}   {}   {}   {}   {}   {}   41   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   2   {}   29   {}   {}   {}   46   62   62   {}   {}   16   {}   33   {}   {}   {}   {}   {}   78   {}   61   {}   59   77   {}   74   {}   27   {}   22   39   67   {}   54   85   74   90   7   61   90   62   {}   93   {}   {}   {}   {}   23   {}   74   93   30   23   29   3   1   41   {}   65   33   2   98   86   89   25   76   {}   40   38   15   13   96   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
303
304do_execsql_test 1.1.9.2 {
305  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
306} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   {}   21   {}   {}   {}   {}   21   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   12   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   27   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   98   {}   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   {}   {}   {}   {}   {}   {}   {}   29   29   {}   {}   {}}
307
308do_execsql_test 1.1.9.3 {
309  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
310} {0   1   1   1   1   1   2   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
311
312do_execsql_test 1.1.9.4 {
313  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
314} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
315
316do_execsql_test 1.1.9.5 {
317  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
318} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   90   1   30   {}   {}   {}   31   30   {}   {}   {}   1   40   {}   50   11   81   42   40   {}   50   81   40   {}   {}   50   {}   52   {}   41   81   {}   41   {}   2   30   2   81   82   53   {}   10   {}   {}   81   {}   41   10   81   30   81   {}   3   3   23   {}   3   61   80   {}   94   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
319
320do_execsql_test 1.1.9.6 {
321  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
322} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
323
324do_execsql_test 1.2.2.1 {
325  SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
326} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
327
328do_execsql_test 1.2.2.2 {
329  SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
330} {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
331
332do_execsql_test 1.2.3.1 {
333  SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
334} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
335
336do_execsql_test 1.2.3.2 {
337  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
338} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
339
340do_execsql_test 1.2.4.1 {
341  SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
342} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
343
344do_execsql_test 1.2.4.2 {
345  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
346} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
347
348do_execsql_test 1.2.4.3 {
349  SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
350} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
351
352do_execsql_test 1.2.4.4 {
353  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
354} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
355
356do_execsql_test 1.2.4.5 {
357  SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
358} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
359
360do_execsql_test 1.2.4.6 {
361  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
362} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
363
364do_execsql_test 1.2.5.1 {
365  SELECT rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
366} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
367
368do_execsql_test 1.2.5.2 {
369  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
370} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
371
372do_execsql_test 1.2.5.3 {
373  SELECT rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
374} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
375
376do_execsql_test 1.2.5.4 {
377  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
378} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
379
380do_execsql_test 1.2.5.5 {
381  SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
382} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
383
384do_execsql_test 1.2.5.6 {
385  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
386} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
387
388do_execsql_test 1.2.6.1 {
389  SELECT
390      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ),
391      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ),
392      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )
393    FROM t2
394} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
395
396do_test 1.2.7.1 {
397  set myres {}
398  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
399    lappend myres [format %.2f [set r]]
400  }
401  set myres
402} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
403
404do_test 1.2.7.2 {
405  set myres {}
406  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
407    lappend myres [format %.2f [set r]]
408  }
409  set myres
410} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
411
412do_test 1.2.7.3 {
413  set myres {}
414  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
415    lappend myres [format %.2f [set r]]
416  }
417  set myres
418} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
419
420do_test 1.2.7.4 {
421  set myres {}
422  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
423    lappend myres [format %.2f [set r]]
424  }
425  set myres
426} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
427
428do_test 1.2.7.5 {
429  set myres {}
430  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
431    lappend myres [format %.2f [set r]]
432  }
433  set myres
434} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
435
436do_test 1.2.7.6 {
437  set myres {}
438  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] {
439    lappend myres [format %.2f [set r]]
440  }
441  set myres
442} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
443
444do_test 1.2.8.1 {
445  set myres {}
446  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
447    lappend myres [format %.2f [set r]]
448  }
449  set myres
450} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
451
452do_test 1.2.8.2 {
453  set myres {}
454  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
455    lappend myres [format %.2f [set r]]
456  }
457  set myres
458} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
459
460do_test 1.2.8.3 {
461  set myres {}
462  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
463    lappend myres [format %.2f [set r]]
464  }
465  set myres
466} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
467
468do_test 1.2.8.4 {
469  set myres {}
470  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
471    lappend myres [format %.2f [set r]]
472  }
473  set myres
474} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
475
476do_test 1.2.8.5 {
477  set myres {}
478  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
479    lappend myres [format %.2f [set r]]
480  }
481  set myres
482} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
483
484do_test 1.2.8.6 {
485  set myres {}
486  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
487    lappend myres [format %.2f [set r]]
488  }
489  set myres
490} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
491
492do_test 1.2.8.1 {
493  set myres {}
494  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
495    lappend myres [format %.2f [set r]]
496  }
497  set myres
498} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
499
500do_test 1.2.8.2 {
501  set myres {}
502  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
503    lappend myres [format %.2f [set r]]
504  }
505  set myres
506} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
507
508do_test 1.2.8.3 {
509  set myres {}
510  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
511    lappend myres [format %.2f [set r]]
512  }
513  set myres
514} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
515
516do_test 1.2.8.4 {
517  set myres {}
518  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
519    lappend myres [format %.2f [set r]]
520  }
521  set myres
522} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
523
524do_test 1.2.8.5 {
525  set myres {}
526  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
527    lappend myres [format %.2f [set r]]
528  }
529  set myres
530} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
531
532do_test 1.2.8.6 {
533  set myres {}
534  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] {
535    lappend myres [format %.2f [set r]]
536  }
537  set myres
538} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
539
540do_execsql_test 1.2.9.1 {
541  SELECT last_value(a+b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
542} {207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207}
543
544do_execsql_test 1.2.9.2 {
545  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
546} {223   223   223   223   223   223   223   223   223   223   223   223   223   223   223   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   232   232   232   232   232   232   232   232   232   232   232   232   232   232   232   232   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
547
548do_execsql_test 1.2.9.3 {
549  SELECT last_value(a+b) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
550} {276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276}
551
552do_execsql_test 1.2.9.4 {
553  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
554} {240   240   240   240   240   240   240   240   240   240   240   240   240   240   240   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   198   198   198   198   198   198   198   198   198   198   198   198   198   198   198   198   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276}
555
556do_execsql_test 1.2.9.5 {
557  SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
558} {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
559
560do_execsql_test 1.2.9.6 {
561  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
562} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
563
564do_execsql_test 1.2.10.1 {
565  SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
566} {0   81   86   81   46   98   97   23   41   72   29   13   28   35   16   47   47   9   24   26   98   58   8   24   30   91   58   2   56   29   73   2   42   46   62   62   73   40   16   85   33   37   81   25   9   87   78   87   61   28   59   77   90   74   9   27   41   22   39   67   72   54   85   74   90   7   61   90   62   4   93   72   96   94   29   23   95   74   93   30   23   29   3   1   41   80   65   33   2   98   86   89   25   76   65   40   38   15   13   96   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
567
568do_execsql_test 1.2.9.2 {
569  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
570} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   21   21   {}   {}   {}   {}   21   {}   {}   {}   21   12   {}   72   {}   {}   {}   12   {}   72   {}   12   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   23   {}   {}   {}   {}   {}   73   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   {}   {}   15   55   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   16   {}   26   26   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   27   47   {}   {}   {}   98   {}   {}   {}   {}   {}   98   {}   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   {}   {}   {}   {}   {}   9   {}   29   29   {}   {}   {}}
571
572do_execsql_test 1.2.9.3 {
573  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
574} {0   1   1   1   1   1   2   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
575
576do_execsql_test 1.2.9.4 {
577  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
578} {0   80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   1   51   51   91   91   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   2   2   62   62   62   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   13   43   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   35   85   85   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   66   66   66   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   37   37   87   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   58   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   39   39   39   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
579
580do_execsql_test 1.2.9.5 {
581  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
582} {0   74   32   31   84   91   74   3   93   84   74   31   12   90   31   22   74   64   43   64   64   90   74   22   43   90   1   30   62   22   31   31   30   74   64   64   1   40   33   50   11   81   42   40   13   50   81   40   13   13   50   33   52   24   41   81   34   41   34   2   30   2   81   82   53   33   10   33   33   81   34   41   10   81   30   81   4   3   3   23   94   3   61   80   84   94   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
583
584do_execsql_test 1.2.9.6 {
585  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
586} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
587
588do_execsql_test 1.3.2.1 {
589  SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
590} {0   74   41   74   23   99   26   33   2   89   81   96   59   38   68   39   62   91   46   6   99   97   27   46   78   54   97   8   67   29   93   84   77   23   16   16   93   65   35   47   7   86   74   61   91   85   24   85   43   59   12   32   56   3   91   22   90   55   15   28   89   25   47   1   56   40   43   56   16   75   36   89   98   76   81   4   94   42   30   78   33   29   53   63   2   87   37   80   84   72   41   9   61   73   95   65   13   58   96   98   1   21   74   65   35   5   73   11   51   87   41   12   8   20   31   31   15   95   22   73   79   88   34   8   11   49   34   90   59   96   60   55   75   77   44   2   7   85   57   74   29   70   59   19   39   26   26   47   80   90   36   58   47   9   72   72   66   33   93   75   64   81   9   23   37   13   12   14   62   91   36   91   33   15   34   36   99   3   95   69   58   52   30   50   84   10   84   33   21   39   44   58   30   38   34   83   27   82   17   7}
591
592do_execsql_test 1.3.2.2 {
593  SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
594} {0   74   41   74   23   99   26   33   2   89   81   96   59   38   68   39   62   91   46   6   99   97   27   46   78   54   97   8   67   29   93   84   77   23   16   16   93   65   35   47   7   86   74   61   91   85   24   85   43   59   12   32   56   3   91   22   90   55   15   28   89   25   47   1   56   40   43   56   16   75   36   89   98   76   81   4   94   42   30   78   33   29   53   63   2   87   37   80   84   72   41   9   61   73   95   65   13   58   96   98   1   21   74   65   35   5   73   11   51   87   41   12   8   20   31   31   15   95   22   73   79   88   34   8   11   49   34   90   59   96   60   55   75   77   44   2   7   85   57   74   29   70   59   19   39   26   26   47   80   90   36   58   47   9   72   72   66   33   93   75   64   81   9   23   37   13   12   14   62   91   36   91   33   15   34   36   99   3   95   69   58   52   30   50   84   10   84   33   21   39   44   58   30   38   34   83   27   82   17   7}
595
596do_execsql_test 1.3.3.1 {
597  SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
598} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
599
600do_execsql_test 1.3.3.2 {
601  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
602} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
603
604do_execsql_test 1.3.4.1 {
605  SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
606} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
607
608do_execsql_test 1.3.4.2 {
609  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
610} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
611
612do_execsql_test 1.3.4.3 {
613  SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
614} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
615
616do_execsql_test 1.3.4.4 {
617  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
618} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
619
620do_execsql_test 1.3.4.5 {
621  SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
622} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
623
624do_execsql_test 1.3.4.6 {
625  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
626} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
627
628do_execsql_test 1.3.5.1 {
629  SELECT rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
630} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
631
632do_execsql_test 1.3.5.2 {
633  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
634} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
635
636do_execsql_test 1.3.5.3 {
637  SELECT rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
638} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
639
640do_execsql_test 1.3.5.4 {
641  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
642} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
643
644do_execsql_test 1.3.5.5 {
645  SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
646} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
647
648do_execsql_test 1.3.5.6 {
649  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
650} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
651
652do_execsql_test 1.3.6.1 {
653  SELECT
654      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ),
655      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ),
656      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW )
657    FROM t2
658} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
659
660do_test 1.3.7.1 {
661  set myres {}
662  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
663    lappend myres [format %.2f [set r]]
664  }
665  set myres
666} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
667
668do_test 1.3.7.2 {
669  set myres {}
670  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
671    lappend myres [format %.2f [set r]]
672  }
673  set myres
674} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
675
676do_test 1.3.7.3 {
677  set myres {}
678  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
679    lappend myres [format %.2f [set r]]
680  }
681  set myres
682} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
683
684do_test 1.3.7.4 {
685  set myres {}
686  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
687    lappend myres [format %.2f [set r]]
688  }
689  set myres
690} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
691
692do_test 1.3.7.5 {
693  set myres {}
694  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
695    lappend myres [format %.2f [set r]]
696  }
697  set myres
698} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
699
700do_test 1.3.7.6 {
701  set myres {}
702  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2}] {
703    lappend myres [format %.2f [set r]]
704  }
705  set myres
706} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
707
708do_test 1.3.8.1 {
709  set myres {}
710  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
711    lappend myres [format %.2f [set r]]
712  }
713  set myres
714} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
715
716do_test 1.3.8.2 {
717  set myres {}
718  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
719    lappend myres [format %.2f [set r]]
720  }
721  set myres
722} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
723
724do_test 1.3.8.3 {
725  set myres {}
726  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
727    lappend myres [format %.2f [set r]]
728  }
729  set myres
730} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
731
732do_test 1.3.8.4 {
733  set myres {}
734  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
735    lappend myres [format %.2f [set r]]
736  }
737  set myres
738} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
739
740do_test 1.3.8.5 {
741  set myres {}
742  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
743    lappend myres [format %.2f [set r]]
744  }
745  set myres
746} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
747
748do_test 1.3.8.6 {
749  set myres {}
750  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
751    lappend myres [format %.2f [set r]]
752  }
753  set myres
754} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
755
756do_test 1.3.8.1 {
757  set myres {}
758  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
759    lappend myres [format %.2f [set r]]
760  }
761  set myres
762} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
763
764do_test 1.3.8.2 {
765  set myres {}
766  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
767    lappend myres [format %.2f [set r]]
768  }
769  set myres
770} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
771
772do_test 1.3.8.3 {
773  set myres {}
774  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
775    lappend myres [format %.2f [set r]]
776  }
777  set myres
778} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
779
780do_test 1.3.8.4 {
781  set myres {}
782  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
783    lappend myres [format %.2f [set r]]
784  }
785  set myres
786} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
787
788do_test 1.3.8.5 {
789  set myres {}
790  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
791    lappend myres [format %.2f [set r]]
792  }
793  set myres
794} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
795
796do_test 1.3.8.6 {
797  set myres {}
798  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2}] {
799    lappend myres [format %.2f [set r]]
800  }
801  set myres
802} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
803
804do_execsql_test 1.3.9.1 {
805  SELECT last_value(a+b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
806} {1   76   44   78   28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279   224   280   216   207}
807
808do_execsql_test 1.3.9.2 {
809  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
810} {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
811
812do_execsql_test 1.3.9.3 {
813  SELECT last_value(a+b) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
814} {1   65   102   11   87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171   198   105   120   276}
815
816do_execsql_test 1.3.9.4 {
817  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
818} {1   196   134   109   213   223   106   234   191   212   168   229   147   218   240   65   102   119   136   123   210   146   147   44   132   152   160   105   154   92   156   243   109   136   146   261   263   11   87   138   63   124   179   78   141   84   120   234   79   231   162   227   228   280   57   181   110   179   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   279   124   130   252   80   182   71   157   161   209   229   179   235   80   225   76   78   117   177   214   116   173   269   271   171   111   74   132   189   87   74   140   113   187   103   161   169   145   208   235   131   133   223   190   213   274   26   51   52   85   33   172   173   107   187   207   212   65   70   109   121   124   223   150   128   108   195   226   48   144   207   216   50   224   124   202   87   110   195   200   196   96   110   211   173   197   119   124   36   121   132   88   52   232   156   210   239   250   83   103   158   210   171   198   101   163   172   163   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150   161   105   120   276}
819
820do_execsql_test 1.3.9.5 {
821  SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
822} {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
823
824do_execsql_test 1.3.9.6 {
825  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
826} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
827
828do_execsql_test 1.3.10.1 {
829  SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
830} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
831
832do_execsql_test 1.3.9.2 {
833  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
834} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
835
836do_execsql_test 1.3.9.3 {
837  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
838} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
839
840do_execsql_test 1.3.9.4 {
841  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
842} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
843
844do_execsql_test 1.3.9.5 {
845  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
846} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
847
848do_execsql_test 1.3.9.6 {
849  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
850} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
851
852do_execsql_test 1.4.2.1 {
853  SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
854} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   95   95   84   84   84   84   84   84   84   84   83   83   83   83   83   83   83   83   83   82   82   17   7}
855
856do_execsql_test 1.4.2.2 {
857  SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
858} {0   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7}
859
860do_execsql_test 1.4.3.1 {
861  SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
862} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
863
864do_execsql_test 1.4.3.2 {
865  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
866} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
867
868do_execsql_test 1.4.4.1 {
869  SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
870} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
871
872do_execsql_test 1.4.4.2 {
873  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
874} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
875
876do_execsql_test 1.4.4.3 {
877  SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
878} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
879
880do_execsql_test 1.4.4.4 {
881  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
882} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
883
884do_execsql_test 1.4.4.5 {
885  SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
886} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
887
888do_execsql_test 1.4.4.6 {
889  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
890} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
891
892do_execsql_test 1.4.5.1 {
893  SELECT rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
894} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
895
896do_execsql_test 1.4.5.2 {
897  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
898} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
899
900do_execsql_test 1.4.5.3 {
901  SELECT rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
902} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
903
904do_execsql_test 1.4.5.4 {
905  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
906} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
907
908do_execsql_test 1.4.5.5 {
909  SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
910} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
911
912do_execsql_test 1.4.5.6 {
913  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
914} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
915
916do_execsql_test 1.4.6.1 {
917  SELECT
918      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ),
919      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ),
920      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING )
921    FROM t2
922} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
923
924do_test 1.4.7.1 {
925  set myres {}
926  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
927    lappend myres [format %.2f [set r]]
928  }
929  set myres
930} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
931
932do_test 1.4.7.2 {
933  set myres {}
934  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
935    lappend myres [format %.2f [set r]]
936  }
937  set myres
938} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
939
940do_test 1.4.7.3 {
941  set myres {}
942  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
943    lappend myres [format %.2f [set r]]
944  }
945  set myres
946} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
947
948do_test 1.4.7.4 {
949  set myres {}
950  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
951    lappend myres [format %.2f [set r]]
952  }
953  set myres
954} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
955
956do_test 1.4.7.5 {
957  set myres {}
958  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
959    lappend myres [format %.2f [set r]]
960  }
961  set myres
962} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
963
964do_test 1.4.7.6 {
965  set myres {}
966  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2}] {
967    lappend myres [format %.2f [set r]]
968  }
969  set myres
970} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
971
972do_test 1.4.8.1 {
973  set myres {}
974  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
975    lappend myres [format %.2f [set r]]
976  }
977  set myres
978} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
979
980do_test 1.4.8.2 {
981  set myres {}
982  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
983    lappend myres [format %.2f [set r]]
984  }
985  set myres
986} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
987
988do_test 1.4.8.3 {
989  set myres {}
990  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
991    lappend myres [format %.2f [set r]]
992  }
993  set myres
994} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
995
996do_test 1.4.8.4 {
997  set myres {}
998  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
999    lappend myres [format %.2f [set r]]
1000  }
1001  set myres
1002} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
1003
1004do_test 1.4.8.5 {
1005  set myres {}
1006  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
1007    lappend myres [format %.2f [set r]]
1008  }
1009  set myres
1010} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1011
1012do_test 1.4.8.6 {
1013  set myres {}
1014  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
1015    lappend myres [format %.2f [set r]]
1016  }
1017  set myres
1018} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1019
1020do_test 1.4.8.1 {
1021  set myres {}
1022  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
1023    lappend myres [format %.2f [set r]]
1024  }
1025  set myres
1026} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
1027
1028do_test 1.4.8.2 {
1029  set myres {}
1030  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
1031    lappend myres [format %.2f [set r]]
1032  }
1033  set myres
1034} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
1035
1036do_test 1.4.8.3 {
1037  set myres {}
1038  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
1039    lappend myres [format %.2f [set r]]
1040  }
1041  set myres
1042} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
1043
1044do_test 1.4.8.4 {
1045  set myres {}
1046  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
1047    lappend myres [format %.2f [set r]]
1048  }
1049  set myres
1050} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
1051
1052do_test 1.4.8.5 {
1053  set myres {}
1054  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
1055    lappend myres [format %.2f [set r]]
1056  }
1057  set myres
1058} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
1059
1060do_test 1.4.8.6 {
1061  set myres {}
1062  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2}] {
1063    lappend myres [format %.2f [set r]]
1064  }
1065  set myres
1066} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1067
1068do_execsql_test 1.4.9.1 {
1069  SELECT last_value(a+b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1070} {207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207}
1071
1072do_execsql_test 1.4.9.2 {
1073  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1074} {223   223   223   223   223   223   223   223   223   223   223   223   223   223   223   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   232   232   232   232   232   232   232   232   232   232   232   232   232   232   232   232   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
1075
1076do_execsql_test 1.4.9.3 {
1077  SELECT last_value(a+b) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1078} {276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276}
1079
1080do_execsql_test 1.4.9.4 {
1081  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1082} {240   240   240   240   240   240   240   240   240   240   240   240   240   240   240   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   198   198   198   198   198   198   198   198   198   198   198   198   198   198   198   198   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276}
1083
1084do_execsql_test 1.4.9.5 {
1085  SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1086} {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
1087
1088do_execsql_test 1.4.9.6 {
1089  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
1090} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
1091
1092do_execsql_test 1.4.10.1 {
1093  SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
1094} {0   4   61   42   8   35   77   7   81   96   9   11   89   32   53   91   30   51   56   54   73   22   59   75   74   78   8   16   65   15   8   31   87   90   12   32   96   74   76   37   85   90   15   35   2   60   36   75   9   51   47   63   51   90   26   42   26   8   76   80   90   37   87   56   79   5   87   8   2   39   73   64   36   90   72   78   36   73   51   33   20   41   2   26   37   33   8   14   33   81   55   1   9   12   39   64   87   72   34   82   21   34   99   62   74   41   69   22   75   27   58   8   79   77   26   26   55   {}   29   30   7   {}   66   55   2   34   64   {}   33   {}   44   84   {}   {}   95   85   19   {}   83   {}   91   {}   {}   9   50   91   33   34   {}   {}   84   {}   7   9   {}   {}   {}   44   {}   {}   {}   {}   91   84   {}   95   95   52   {}   {}   {}   {}   {}   21   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   83   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1095
1096do_execsql_test 1.4.9.2 {
1097  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
1098} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   62   {}   {}   {}   12   {}   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   95   {}   {}   {}   {}   {}   {}   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   56   {}   36   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   57   {}   {}   {}   {}   {}   7   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   8   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   9   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1099
1100do_execsql_test 1.4.9.3 {
1101  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1102} {0   1   2   2   3   3   5   6   7   8   8   9   9   10   11   12   12   13   13   14   15   16   16   17   19   20   21   22   23   23   24   25   26   26   27   28   29   30   31   31   33   33   33   33   34   34   35   36   36   36   37   37   38   39   39   40   41   41   42   43   44   46   47   47   47   47   49   51   52   53   54   55   56   56   57   58   58   58   59   59   59   61   61   62   63   65   65   65   67   69   70   72   72   73   74   74   74   74   75   76   77   78   80   81   81   83   84   84   84   85   85   87   87   88   89   89   90   90   90   91   91   91   93   93   95   95   96   96   97   98   99   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1103
1104do_execsql_test 1.4.9.4 {
1105  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1106} {0   80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   11   61   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   12   12   72   82   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   23   63   73   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   35   85   85   95   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   76   86   96   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   47   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   58   68   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   39   49   59   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1107
1108do_execsql_test 1.4.9.5 {
1109  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1110} {0   64   42   81   94   1   44   73   74   44   85   22   33   41   72   93   34   65   54   5   15   81   15   63   84   21   2   62   54   93   43   33   2   75   16   86   23   12   85   62   13   53   94   12   75   23   73   72   96   46   33   55   25   26   74   34   87   84   87   55   53   25   84   75   56   66   54   36   97   55   78   84   84   95   74   65   17   87   77   96   8   47   95   34   89   98   7   46   6   96   8   47   95   56   89   59   36   36   78   96   89   29   37   95   56   39   {}   8   58   67   85   86   {}   58   49   {}   29   76   {}   77   {}   78   56   98   36   97   {}   59   89   89   47   78   {}   {}   {}   38   68   58   {}   58   38   {}   98   {}   {}   {}   19   57   9   {}   9   {}   {}   7   {}   {}   {}   39   89   38   78   39   {}   {}   8   19   {}   {}   {}   {}   89   {}   39   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   9   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1111
1112do_execsql_test 1.4.9.6 {
1113  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
1114} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1115
1116do_execsql_test 1.5.2.1 {
1117  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1118} {{}   {}   {}   {}   0   74   74   74   74   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
1119
1120do_execsql_test 1.5.2.2 {
1121  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1122} {{}   {}   {}   {}   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
1123
1124do_execsql_test 1.5.3.1 {
1125  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1126} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1127
1128do_execsql_test 1.5.3.2 {
1129  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1130} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1131
1132do_execsql_test 1.5.4.1 {
1133  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1134} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1135
1136do_execsql_test 1.5.4.2 {
1137  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1138} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1139
1140do_execsql_test 1.5.4.3 {
1141  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1142} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
1143
1144do_execsql_test 1.5.4.4 {
1145  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1146} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
1147
1148do_execsql_test 1.5.4.5 {
1149  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1150} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
1151
1152do_execsql_test 1.5.4.6 {
1153  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1154} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
1155
1156do_execsql_test 1.5.5.1 {
1157  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1158} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1159
1160do_execsql_test 1.5.5.2 {
1161  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1162} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1163
1164do_execsql_test 1.5.5.3 {
1165  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1166} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
1167
1168do_execsql_test 1.5.5.4 {
1169  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1170} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
1171
1172do_execsql_test 1.5.5.5 {
1173  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1174} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
1175
1176do_execsql_test 1.5.5.6 {
1177  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1178} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
1179
1180do_execsql_test 1.5.6.1 {
1181  SELECT
1182      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ),
1183      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ),
1184      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING )
1185    FROM t2
1186} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
1187
1188do_test 1.5.7.1 {
1189  set myres {}
1190  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1191    lappend myres [format %.2f [set r]]
1192  }
1193  set myres
1194} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
1195
1196do_test 1.5.7.2 {
1197  set myres {}
1198  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1199    lappend myres [format %.2f [set r]]
1200  }
1201  set myres
1202} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
1203
1204do_test 1.5.7.3 {
1205  set myres {}
1206  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1207    lappend myres [format %.2f [set r]]
1208  }
1209  set myres
1210} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
1211
1212do_test 1.5.7.4 {
1213  set myres {}
1214  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1215    lappend myres [format %.2f [set r]]
1216  }
1217  set myres
1218} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
1219
1220do_test 1.5.7.5 {
1221  set myres {}
1222  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1223    lappend myres [format %.2f [set r]]
1224  }
1225  set myres
1226} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
1227
1228do_test 1.5.7.6 {
1229  set myres {}
1230  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2}] {
1231    lappend myres [format %.2f [set r]]
1232  }
1233  set myres
1234} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
1235
1236do_test 1.5.8.1 {
1237  set myres {}
1238  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1239    lappend myres [format %.2f [set r]]
1240  }
1241  set myres
1242} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
1243
1244do_test 1.5.8.2 {
1245  set myres {}
1246  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1247    lappend myres [format %.2f [set r]]
1248  }
1249  set myres
1250} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
1251
1252do_test 1.5.8.3 {
1253  set myres {}
1254  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1255    lappend myres [format %.2f [set r]]
1256  }
1257  set myres
1258} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
1259
1260do_test 1.5.8.4 {
1261  set myres {}
1262  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1263    lappend myres [format %.2f [set r]]
1264  }
1265  set myres
1266} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
1267
1268do_test 1.5.8.5 {
1269  set myres {}
1270  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1271    lappend myres [format %.2f [set r]]
1272  }
1273  set myres
1274} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1275
1276do_test 1.5.8.6 {
1277  set myres {}
1278  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1279    lappend myres [format %.2f [set r]]
1280  }
1281  set myres
1282} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1283
1284do_test 1.5.8.1 {
1285  set myres {}
1286  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1287    lappend myres [format %.2f [set r]]
1288  }
1289  set myres
1290} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
1291
1292do_test 1.5.8.2 {
1293  set myres {}
1294  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1295    lappend myres [format %.2f [set r]]
1296  }
1297  set myres
1298} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
1299
1300do_test 1.5.8.3 {
1301  set myres {}
1302  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1303    lappend myres [format %.2f [set r]]
1304  }
1305  set myres
1306} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
1307
1308do_test 1.5.8.4 {
1309  set myres {}
1310  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1311    lappend myres [format %.2f [set r]]
1312  }
1313  set myres
1314} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
1315
1316do_test 1.5.8.5 {
1317  set myres {}
1318  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
1319    lappend myres [format %.2f [set r]]
1320  }
1321  set myres
1322} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
1323
1324do_test 1.5.8.6 {
1325  set myres {}
1326  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2}] {
1327    lappend myres [format %.2f [set r]]
1328  }
1329  set myres
1330} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1331
1332do_execsql_test 1.5.9.1 {
1333  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1334} {{}   {}   {}   {}   1   76   44   78   28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279}
1335
1336do_execsql_test 1.5.9.2 {
1337  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1338} {{}   {}   {}   {}   1   147   106   109   168   134   218   191   212   229   240   {}   {}   {}   {}   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   {}   {}   {}   {}   11   79   63   84   78   120   87   162   124   141   138   227   228   {}   {}   {}   {}   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   {}   {}   {}   {}   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   {}   {}   {}   {}   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   {}   {}   {}   {}   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   {}   {}   {}   {}   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   {}   {}   {}   {}   52   83   103   36   88   171   158   156   198   121   210   132   {}   {}   {}   {}   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163}
1339
1340do_execsql_test 1.5.9.3 {
1341  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1342} {{}   {}   {}   {}   1   65   102   11   87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171}
1343
1344do_execsql_test 1.5.9.4 {
1345  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1346} {{}   {}   {}   {}   1   196   134   109   213   223   106   234   191   212   168   {}   {}   {}   {}   65   102   119   136   123   210   146   147   44   132   152   160   105   154   92   156   243   109   {}   {}   {}   {}   11   87   138   63   124   179   78   141   84   120   234   79   231   {}   {}   {}   {}   57   181   110   179   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   {}   {}   {}   {}   80   182   71   157   161   209   229   179   235   80   225   76   78   117   177   214   116   {}   {}   {}   {}   111   74   132   189   87   74   140   113   187   103   161   169   145   208   235   131   133   {}   {}   {}   {}   26   51   52   85   33   172   173   107   187   207   212   65   70   109   121   124   223   150   {}   {}   {}   {}   48   144   207   216   50   224   124   202   87   110   195   200   196   96   110   211   {}   {}   {}   {}   36   121   132   88   52   232   156   210   239   250   83   103   {}   {}   {}   {}   101   163   172   163   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150}
1347
1348do_execsql_test 1.5.9.5 {
1349  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1350} {{}   {}   {}   {}   1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163}
1351
1352do_execsql_test 1.5.9.6 {
1353  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
1354} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1355
1356do_execsql_test 1.5.10.1 {
1357  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
1358} {{}   {}   {}   {}   {}   {}   {}   {}   41   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   2   {}   {}   {}   {}   {}   46   62   62   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   78   {}   61   {}   59   77   {}   74   {}   27   {}   {}   39   67   {}   54   85   74   90   7   61   90   62   {}   93   {}   {}   {}   {}   23   {}   74   93   {}   23   29   3   1   41   {}   65   33   2   98   86   89   25   76   {}   40   38   15   {}   {}   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
1359
1360do_execsql_test 1.5.9.2 {
1361  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
1362} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   29   {}   {}   {}}
1363
1364do_execsql_test 1.5.9.3 {
1365  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1366} {{}   {}   {}   {}   {}   {}   {}   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
1367
1368do_execsql_test 1.5.9.4 {
1369  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1370} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1371
1372do_execsql_test 1.5.9.5 {
1373  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
1374} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   90   1   30   {}   {}   {}   {}   30   {}   {}   {}   1   40   {}   50   11   81   {}   40   {}   50   81   40   {}   {}   50   {}   {}   {}   41   81   {}   41   {}   2   30   2   81   82   {}   {}   10   {}   {}   81   {}   41   10   81   30   81   {}   {}   3   23   {}   3   61   80   {}   {}   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
1375
1376do_execsql_test 1.5.9.6 {
1377  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
1378} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1379
1380do_execsql_test 1.6.2.1 {
1381  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1382} {{}   {}   0   74   74   74   74   99   99   99   33   89   89   96   96   96   68   68   68   91   91   91   99   99   99   97   78   78   97   97   97   67   93   93   93   84   77   23   93   93   93   65   47   86   86   86   91   91   91   85   85   85   59   59   56   56   91   91   91   90   90   55   89   89   89   47   56   56   56   56   56   75   75   89   98   98   98   81   94   94   94   78   78   78   53   63   63   87   87   87   84   84   84   72   61   73   95   95   95   65   96   98   98   98   74   74   74   65   73   73   73   87   87   87   41   20   31   31   31   95   95   95   79   88   88   88   34   49   49   90   90   96   96   96   75   77   77   77   44   85   85   85   74   74   70   70   59   39   39   47   80   90   90   90   58   58   72   72   72   72   93   93   93   81   81   81   37   37   37   14   62   91   91   91   91   91   34   36   99   99   99   95   95   69   58   52   84   84   84   84   84   39   44   58   58   58   38   83   83   83}
1383
1384do_execsql_test 1.6.2.2 {
1385  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1386} {{}   {}   0   0   0   41   23   23   23   26   2   2   2   81   59   38   38   38   39   39   46   6   6   6   27   27   27   46   54   8   8   8   29   29   77   23   16   16   16   16   35   35   7   7   7   61   61   61   24   24   24   43   12   12   12   3   3   3   22   22   15   15   15   25   25   1   1   1   40   40   16   16   16   36   36   76   76   4   4   4   30   30   30   29   29   29   2   2   2   37   37   72   41   9   9   9   61   65   13   13   13   58   1   1   1   21   35   5   5   5   11   11   41   12   8   8   8   20   15   15   15   22   22   73   34   8   8   8   11   34   34   59   59   55   55   55   44   2   2   2   7   57   29   29   29   19   19   19   26   26   26   47   36   36   36   9   9   9   66   33   33   33   64   64   9   9   9   13   12   12   12   14   36   36   33   15   15   15   34   3   3   3   58   52   30   30   30   10   10   10   21   21   21   39   30   30   30   34   27   27}
1387
1388do_execsql_test 1.6.3.1 {
1389  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1390} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1391
1392do_execsql_test 1.6.3.2 {
1393  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1394} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1395
1396do_execsql_test 1.6.4.1 {
1397  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1398} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1399
1400do_execsql_test 1.6.4.2 {
1401  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1402} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1403
1404do_execsql_test 1.6.4.3 {
1405  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1406} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
1407
1408do_execsql_test 1.6.4.4 {
1409  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1410} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
1411
1412do_execsql_test 1.6.4.5 {
1413  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1414} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
1415
1416do_execsql_test 1.6.4.6 {
1417  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1418} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
1419
1420do_execsql_test 1.6.5.1 {
1421  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1422} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1423
1424do_execsql_test 1.6.5.2 {
1425  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1426} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1427
1428do_execsql_test 1.6.5.3 {
1429  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1430} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
1431
1432do_execsql_test 1.6.5.4 {
1433  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1434} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
1435
1436do_execsql_test 1.6.5.5 {
1437  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1438} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
1439
1440do_execsql_test 1.6.5.6 {
1441  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1442} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
1443
1444do_execsql_test 1.6.6.1 {
1445  SELECT
1446      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ),
1447      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ),
1448      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING )
1449    FROM t2
1450} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
1451
1452do_test 1.6.7.1 {
1453  set myres {}
1454  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1455    lappend myres [format %.2f [set r]]
1456  }
1457  set myres
1458} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
1459
1460do_test 1.6.7.2 {
1461  set myres {}
1462  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1463    lappend myres [format %.2f [set r]]
1464  }
1465  set myres
1466} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
1467
1468do_test 1.6.7.3 {
1469  set myres {}
1470  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1471    lappend myres [format %.2f [set r]]
1472  }
1473  set myres
1474} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
1475
1476do_test 1.6.7.4 {
1477  set myres {}
1478  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1479    lappend myres [format %.2f [set r]]
1480  }
1481  set myres
1482} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
1483
1484do_test 1.6.7.5 {
1485  set myres {}
1486  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1487    lappend myres [format %.2f [set r]]
1488  }
1489  set myres
1490} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
1491
1492do_test 1.6.7.6 {
1493  set myres {}
1494  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2}] {
1495    lappend myres [format %.2f [set r]]
1496  }
1497  set myres
1498} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
1499
1500do_test 1.6.8.1 {
1501  set myres {}
1502  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1503    lappend myres [format %.2f [set r]]
1504  }
1505  set myres
1506} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
1507
1508do_test 1.6.8.2 {
1509  set myres {}
1510  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1511    lappend myres [format %.2f [set r]]
1512  }
1513  set myres
1514} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
1515
1516do_test 1.6.8.3 {
1517  set myres {}
1518  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1519    lappend myres [format %.2f [set r]]
1520  }
1521  set myres
1522} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
1523
1524do_test 1.6.8.4 {
1525  set myres {}
1526  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1527    lappend myres [format %.2f [set r]]
1528  }
1529  set myres
1530} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
1531
1532do_test 1.6.8.5 {
1533  set myres {}
1534  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1535    lappend myres [format %.2f [set r]]
1536  }
1537  set myres
1538} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1539
1540do_test 1.6.8.6 {
1541  set myres {}
1542  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1543    lappend myres [format %.2f [set r]]
1544  }
1545  set myres
1546} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1547
1548do_test 1.6.8.1 {
1549  set myres {}
1550  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1551    lappend myres [format %.2f [set r]]
1552  }
1553  set myres
1554} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
1555
1556do_test 1.6.8.2 {
1557  set myres {}
1558  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1559    lappend myres [format %.2f [set r]]
1560  }
1561  set myres
1562} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
1563
1564do_test 1.6.8.3 {
1565  set myres {}
1566  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1567    lappend myres [format %.2f [set r]]
1568  }
1569  set myres
1570} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
1571
1572do_test 1.6.8.4 {
1573  set myres {}
1574  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1575    lappend myres [format %.2f [set r]]
1576  }
1577  set myres
1578} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
1579
1580do_test 1.6.8.5 {
1581  set myres {}
1582  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
1583    lappend myres [format %.2f [set r]]
1584  }
1585  set myres
1586} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
1587
1588do_test 1.6.8.6 {
1589  set myres {}
1590  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2}] {
1591    lappend myres [format %.2f [set r]]
1592  }
1593  set myres
1594} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1595
1596do_execsql_test 1.6.9.1 {
1597  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1598} {{}   {}   1   76   44   78   28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279   224   280}
1599
1600do_execsql_test 1.6.9.2 {
1601  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1602} {{}   {}   1   147   106   109   168   134   218   191   212   229   240   213   234   {}   {}   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   {}   {}   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   {}   {}   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   {}   {}   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   {}   {}   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   {}   {}   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   {}   {}   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   {}   {}   52   83   103   36   88   171   158   156   198   121   210   132   210   239   {}   {}   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276}
1603
1604do_execsql_test 1.6.9.3 {
1605  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1606} {{}   {}   1   65   102   11   87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171   198   105}
1607
1608do_execsql_test 1.6.9.4 {
1609  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1610} {{}   {}   1   196   134   109   213   223   106   234   191   212   168   229   147   {}   {}   65   102   119   136   123   210   146   147   44   132   152   160   105   154   92   156   243   109   136   146   {}   {}   11   87   138   63   124   179   78   141   84   120   234   79   231   162   227   {}   {}   57   181   110   179   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   279   124   {}   {}   80   182   71   157   161   209   229   179   235   80   225   76   78   117   177   214   116   173   269   {}   {}   111   74   132   189   87   74   140   113   187   103   161   169   145   208   235   131   133   223   190   {}   {}   26   51   52   85   33   172   173   107   187   207   212   65   70   109   121   124   223   150   128   108   {}   {}   48   144   207   216   50   224   124   202   87   110   195   200   196   96   110   211   173   197   {}   {}   36   121   132   88   52   232   156   210   239   250   83   103   158   210   {}   {}   101   163   172   163   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150   161   105}
1611
1612do_execsql_test 1.6.9.5 {
1613  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1614} {{}   {}   1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276}
1615
1616do_execsql_test 1.6.9.6 {
1617  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2
1618} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1619
1620do_execsql_test 1.6.10.1 {
1621  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2
1622} {{}   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   77   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1623
1624do_execsql_test 1.6.9.2 {
1625  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2
1626} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1627
1628do_execsql_test 1.6.9.3 {
1629  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1630} {{}   {}   {}   {}   1   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1631
1632do_execsql_test 1.6.9.4 {
1633  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1634} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1635
1636do_execsql_test 1.6.9.5 {
1637  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
1638} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   91   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1639
1640do_execsql_test 1.6.9.6 {
1641  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING) FROM t2
1642} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1643
1644do_execsql_test 1.7.2.1 {
1645  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1646} {0   74   74   74   74   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
1647
1648do_execsql_test 1.7.2.2 {
1649  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1650} {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
1651
1652do_execsql_test 1.7.3.1 {
1653  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1654} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1655
1656do_execsql_test 1.7.3.2 {
1657  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1658} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1659
1660do_execsql_test 1.7.4.1 {
1661  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1662} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1663
1664do_execsql_test 1.7.4.2 {
1665  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1666} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1667
1668do_execsql_test 1.7.4.3 {
1669  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1670} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
1671
1672do_execsql_test 1.7.4.4 {
1673  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1674} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
1675
1676do_execsql_test 1.7.4.5 {
1677  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1678} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
1679
1680do_execsql_test 1.7.4.6 {
1681  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1682} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
1683
1684do_execsql_test 1.7.5.1 {
1685  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1686} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1687
1688do_execsql_test 1.7.5.2 {
1689  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1690} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1691
1692do_execsql_test 1.7.5.3 {
1693  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1694} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
1695
1696do_execsql_test 1.7.5.4 {
1697  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1698} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
1699
1700do_execsql_test 1.7.5.5 {
1701  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1702} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
1703
1704do_execsql_test 1.7.5.6 {
1705  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1706} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
1707
1708do_execsql_test 1.7.6.1 {
1709  SELECT
1710      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ),
1711      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ),
1712      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW )
1713    FROM t2
1714} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
1715
1716do_test 1.7.7.1 {
1717  set myres {}
1718  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1719    lappend myres [format %.2f [set r]]
1720  }
1721  set myres
1722} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
1723
1724do_test 1.7.7.2 {
1725  set myres {}
1726  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1727    lappend myres [format %.2f [set r]]
1728  }
1729  set myres
1730} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
1731
1732do_test 1.7.7.3 {
1733  set myres {}
1734  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1735    lappend myres [format %.2f [set r]]
1736  }
1737  set myres
1738} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
1739
1740do_test 1.7.7.4 {
1741  set myres {}
1742  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1743    lappend myres [format %.2f [set r]]
1744  }
1745  set myres
1746} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
1747
1748do_test 1.7.7.5 {
1749  set myres {}
1750  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1751    lappend myres [format %.2f [set r]]
1752  }
1753  set myres
1754} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
1755
1756do_test 1.7.7.6 {
1757  set myres {}
1758  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] {
1759    lappend myres [format %.2f [set r]]
1760  }
1761  set myres
1762} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
1763
1764do_test 1.7.8.1 {
1765  set myres {}
1766  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1767    lappend myres [format %.2f [set r]]
1768  }
1769  set myres
1770} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
1771
1772do_test 1.7.8.2 {
1773  set myres {}
1774  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1775    lappend myres [format %.2f [set r]]
1776  }
1777  set myres
1778} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
1779
1780do_test 1.7.8.3 {
1781  set myres {}
1782  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1783    lappend myres [format %.2f [set r]]
1784  }
1785  set myres
1786} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
1787
1788do_test 1.7.8.4 {
1789  set myres {}
1790  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1791    lappend myres [format %.2f [set r]]
1792  }
1793  set myres
1794} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
1795
1796do_test 1.7.8.5 {
1797  set myres {}
1798  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1799    lappend myres [format %.2f [set r]]
1800  }
1801  set myres
1802} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1803
1804do_test 1.7.8.6 {
1805  set myres {}
1806  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1807    lappend myres [format %.2f [set r]]
1808  }
1809  set myres
1810} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1811
1812do_test 1.7.8.1 {
1813  set myres {}
1814  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1815    lappend myres [format %.2f [set r]]
1816  }
1817  set myres
1818} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
1819
1820do_test 1.7.8.2 {
1821  set myres {}
1822  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1823    lappend myres [format %.2f [set r]]
1824  }
1825  set myres
1826} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
1827
1828do_test 1.7.8.3 {
1829  set myres {}
1830  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1831    lappend myres [format %.2f [set r]]
1832  }
1833  set myres
1834} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
1835
1836do_test 1.7.8.4 {
1837  set myres {}
1838  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1839    lappend myres [format %.2f [set r]]
1840  }
1841  set myres
1842} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
1843
1844do_test 1.7.8.5 {
1845  set myres {}
1846  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
1847    lappend myres [format %.2f [set r]]
1848  }
1849  set myres
1850} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
1851
1852do_test 1.7.8.6 {
1853  set myres {}
1854  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] {
1855    lappend myres [format %.2f [set r]]
1856  }
1857  set myres
1858} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
1859
1860do_execsql_test 1.7.9.1 {
1861  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1862} {1   76   44   78   28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279   224   280   216   207}
1863
1864do_execsql_test 1.7.9.2 {
1865  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1866} {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
1867
1868do_execsql_test 1.7.9.3 {
1869  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1870} {1   65   102   11   87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171   198   105   120   276}
1871
1872do_execsql_test 1.7.9.4 {
1873  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1874} {1   196   134   109   213   223   106   234   191   212   168   229   147   218   240   65   102   119   136   123   210   146   147   44   132   152   160   105   154   92   156   243   109   136   146   261   263   11   87   138   63   124   179   78   141   84   120   234   79   231   162   227   228   280   57   181   110   179   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   279   124   130   252   80   182   71   157   161   209   229   179   235   80   225   76   78   117   177   214   116   173   269   271   171   111   74   132   189   87   74   140   113   187   103   161   169   145   208   235   131   133   223   190   213   274   26   51   52   85   33   172   173   107   187   207   212   65   70   109   121   124   223   150   128   108   195   226   48   144   207   216   50   224   124   202   87   110   195   200   196   96   110   211   173   197   119   124   36   121   132   88   52   232   156   210   239   250   83   103   158   210   171   198   101   163   172   163   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150   161   105   120   276}
1875
1876do_execsql_test 1.7.9.5 {
1877  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1878} {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
1879
1880do_execsql_test 1.7.9.6 {
1881  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
1882} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
1883
1884do_execsql_test 1.7.10.1 {
1885  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
1886} {0   {}   {}   {}   {}   {}   {}   {}   41   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   2   {}   29   {}   {}   {}   46   62   62   {}   {}   16   {}   33   {}   {}   {}   {}   {}   78   {}   61   {}   59   77   {}   74   {}   27   {}   22   39   67   {}   54   85   74   90   7   61   90   62   {}   93   {}   {}   {}   {}   23   {}   74   93   30   23   29   3   1   41   {}   65   33   2   98   86   89   25   76   {}   40   38   15   13   96   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
1887
1888do_execsql_test 1.7.9.2 {
1889  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
1890} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   {}   21   {}   {}   {}   {}   21   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   12   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   27   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   98   {}   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   {}   {}   {}   {}   {}   {}   {}   29   29   {}   {}   {}}
1891
1892do_execsql_test 1.7.9.3 {
1893  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1894} {0   1   1   1   1   1   2   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
1895
1896do_execsql_test 1.7.9.4 {
1897  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1898} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1899
1900do_execsql_test 1.7.9.5 {
1901  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
1902} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   90   1   30   {}   {}   {}   31   30   {}   {}   {}   1   40   {}   50   11   81   42   40   {}   50   81   40   {}   {}   50   {}   52   {}   41   81   {}   41   {}   2   30   2   81   82   53   {}   10   {}   {}   81   {}   41   10   81   30   81   {}   3   3   23   {}   3   61   80   {}   94   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
1903
1904do_execsql_test 1.7.9.6 {
1905  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
1906} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
1907
1908do_execsql_test 1.8.2.1 {
1909  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1910} {0   74   74   74   74   99   99   99   99   99   89   96   96   96   96   96   68   91   91   91   99   99   99   99   99   97   97   97   97   97   97   93   93   93   93   84   93   93   93   93   93   86   86   86   91   91   91   91   91   85   85   85   59   59   91   91   91   91   91   90   90   89   89   89   89   56   56   56   56   75   75   89   98   98   98   98   98   94   94   94   94   78   78   78   63   87   87   87   87   87   84   84   84   73   95   95   95   95   96   98   98   98   98   98   74   74   74   73   73   87   87   87   87   87   41   31   31   95   95   95   95   95   88   88   88   88   49   90   90   96   96   96   96   96   77   77   77   85   85   85   85   85   74   74   70   70   59   47   80   90   90   90   90   90   72   72   72   72   93   93   93   93   93   81   81   81   37   37   62   91   91   91   91   91   91   91   99   99   99   99   99   95   95   69   84   84   84   84   84   84   84   58   58   58   58   83   83   83   83   83}
1911
1912do_execsql_test 1.8.2.2 {
1913  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1914} {0   0   0   0   0   23   23   23   2   2   2   2   2   38   38   38   38   38   39   6   6   6   6   6   27   27   27   8   8   8   8   8   29   23   16   16   16   16   16   16   7   7   7   7   7   61   24   24   24   24   12   12   12   3   3   3   3   3   15   15   15   15   15   1   1   1   1   1   16   16   16   16   16   36   36   4   4   4   4   4   30   29   29   29   2   2   2   2   2   37   37   9   9   9   9   9   13   13   13   13   1   1   1   1   1   5   5   5   5   5   11   11   8   8   8   8   8   15   15   15   15   22   22   8   8   8   8   8   11   34   34   55   55   55   44   2   2   2   2   2   7   29   29   19   19   19   19   19   26   26   26   36   36   9   9   9   9   9   33   33   33   33   9   9   9   9   9   12   12   12   12   14   33   15   15   15   15   3   3   3   3   3   30   30   30   10   10   10   10   10   21   21   21   30   30   30   27   27   17   7}
1915
1916do_execsql_test 1.8.3.1 {
1917  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1918} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1919
1920do_execsql_test 1.8.3.2 {
1921  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1922} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1923
1924do_execsql_test 1.8.4.1 {
1925  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1926} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1927
1928do_execsql_test 1.8.4.2 {
1929  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1930} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1931
1932do_execsql_test 1.8.4.3 {
1933  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1934} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
1935
1936do_execsql_test 1.8.4.4 {
1937  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1938} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
1939
1940do_execsql_test 1.8.4.5 {
1941  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1942} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
1943
1944do_execsql_test 1.8.4.6 {
1945  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1946} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
1947
1948do_execsql_test 1.8.5.1 {
1949  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1950} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
1951
1952do_execsql_test 1.8.5.2 {
1953  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1954} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
1955
1956do_execsql_test 1.8.5.3 {
1957  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1958} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
1959
1960do_execsql_test 1.8.5.4 {
1961  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1962} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
1963
1964do_execsql_test 1.8.5.5 {
1965  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1966} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
1967
1968do_execsql_test 1.8.5.6 {
1969  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1970} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
1971
1972do_execsql_test 1.8.6.1 {
1973  SELECT
1974      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ),
1975      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ),
1976      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW )
1977    FROM t2
1978} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
1979
1980do_test 1.8.7.1 {
1981  set myres {}
1982  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
1983    lappend myres [format %.2f [set r]]
1984  }
1985  set myres
1986} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
1987
1988do_test 1.8.7.2 {
1989  set myres {}
1990  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
1991    lappend myres [format %.2f [set r]]
1992  }
1993  set myres
1994} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
1995
1996do_test 1.8.7.3 {
1997  set myres {}
1998  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
1999    lappend myres [format %.2f [set r]]
2000  }
2001  set myres
2002} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
2003
2004do_test 1.8.7.4 {
2005  set myres {}
2006  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2007    lappend myres [format %.2f [set r]]
2008  }
2009  set myres
2010} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
2011
2012do_test 1.8.7.5 {
2013  set myres {}
2014  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2015    lappend myres [format %.2f [set r]]
2016  }
2017  set myres
2018} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
2019
2020do_test 1.8.7.6 {
2021  set myres {}
2022  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2}] {
2023    lappend myres [format %.2f [set r]]
2024  }
2025  set myres
2026} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
2027
2028do_test 1.8.8.1 {
2029  set myres {}
2030  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2031    lappend myres [format %.2f [set r]]
2032  }
2033  set myres
2034} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
2035
2036do_test 1.8.8.2 {
2037  set myres {}
2038  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2039    lappend myres [format %.2f [set r]]
2040  }
2041  set myres
2042} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
2043
2044do_test 1.8.8.3 {
2045  set myres {}
2046  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2047    lappend myres [format %.2f [set r]]
2048  }
2049  set myres
2050} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
2051
2052do_test 1.8.8.4 {
2053  set myres {}
2054  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2055    lappend myres [format %.2f [set r]]
2056  }
2057  set myres
2058} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
2059
2060do_test 1.8.8.5 {
2061  set myres {}
2062  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2063    lappend myres [format %.2f [set r]]
2064  }
2065  set myres
2066} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2067
2068do_test 1.8.8.6 {
2069  set myres {}
2070  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2071    lappend myres [format %.2f [set r]]
2072  }
2073  set myres
2074} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2075
2076do_test 1.8.8.1 {
2077  set myres {}
2078  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2079    lappend myres [format %.2f [set r]]
2080  }
2081  set myres
2082} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
2083
2084do_test 1.8.8.2 {
2085  set myres {}
2086  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2087    lappend myres [format %.2f [set r]]
2088  }
2089  set myres
2090} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
2091
2092do_test 1.8.8.3 {
2093  set myres {}
2094  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2095    lappend myres [format %.2f [set r]]
2096  }
2097  set myres
2098} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
2099
2100do_test 1.8.8.4 {
2101  set myres {}
2102  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2103    lappend myres [format %.2f [set r]]
2104  }
2105  set myres
2106} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
2107
2108do_test 1.8.8.5 {
2109  set myres {}
2110  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
2111    lappend myres [format %.2f [set r]]
2112  }
2113  set myres
2114} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
2115
2116do_test 1.8.8.6 {
2117  set myres {}
2118  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2}] {
2119    lappend myres [format %.2f [set r]]
2120  }
2121  set myres
2122} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2123
2124do_execsql_test 1.8.9.1 {
2125  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
2126} {1   76   44   78   28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279   224   280   216   207}
2127
2128do_execsql_test 1.8.9.2 {
2129  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
2130} {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
2131
2132do_execsql_test 1.8.9.3 {
2133  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
2134} {1   65   102   11   87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171   198   105   120   276}
2135
2136do_execsql_test 1.8.9.4 {
2137  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
2138} {1   196   134   109   213   223   106   234   191   212   168   229   147   218   240   65   102   119   136   123   210   146   147   44   132   152   160   105   154   92   156   243   109   136   146   261   263   11   87   138   63   124   179   78   141   84   120   234   79   231   162   227   228   280   57   181   110   179   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   279   124   130   252   80   182   71   157   161   209   229   179   235   80   225   76   78   117   177   214   116   173   269   271   171   111   74   132   189   87   74   140   113   187   103   161   169   145   208   235   131   133   223   190   213   274   26   51   52   85   33   172   173   107   187   207   212   65   70   109   121   124   223   150   128   108   195   226   48   144   207   216   50   224   124   202   87   110   195   200   196   96   110   211   173   197   119   124   36   121   132   88   52   232   156   210   239   250   83   103   158   210   171   198   101   163   172   163   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150   161   105   120   276}
2139
2140do_execsql_test 1.8.9.5 {
2141  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
2142} {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
2143
2144do_execsql_test 1.8.9.6 {
2145  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2
2146} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
2147
2148do_execsql_test 1.8.10.1 {
2149  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2
2150} {0   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   56   {}   {}   {}   {}   {}   {}   {}   {}   {}   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   77   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2151
2152do_execsql_test 1.8.9.2 {
2153  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2
2154} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2155
2156do_execsql_test 1.8.9.3 {
2157  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
2158} {0   1   1   1   1   2   2   3   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2159
2160do_execsql_test 1.8.9.4 {
2161  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
2162} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2163
2164do_execsql_test 1.8.9.5 {
2165  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
2166} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   91   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2167
2168do_execsql_test 1.8.9.6 {
2169  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW) FROM t2
2170} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2171
2172do_execsql_test 1.9.2.1 {
2173  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2174} {0   74   41   74   23   99   26   33   2   89   81   96   59   38   68   39   62   91   46   6   99   97   27   46   78   54   97   8   67   29   93   84   77   23   16   16   93   65   35   47   7   86   74   61   91   85   24   85   43   59   12   32   56   3   91   22   90   55   15   28   89   25   47   1   56   40   43   56   16   75   36   89   98   76   81   4   94   42   30   78   33   29   53   63   2   87   37   80   84   72   41   9   61   73   95   65   13   58   96   98   1   21   74   65   35   5   73   11   51   87   41   12   8   20   31   31   15   95   22   73   79   88   34   8   11   49   34   90   59   96   60   55   75   77   44   2   7   85   57   74   29   70   59   19   39   26   26   47   80   90   36   58   47   9   72   72   66   33   93   75   64   81   9   23   37   13   12   14   62   91   36   91   33   15   34   36   99   3   95   69   58   52   30   50   84   10   84   33   21   39   44   58   30   38   34   83   27   82   17   7}
2175
2176do_execsql_test 1.9.2.2 {
2177  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2178} {0   74   41   74   23   99   26   33   2   89   81   96   59   38   68   39   62   91   46   6   99   97   27   46   78   54   97   8   67   29   93   84   77   23   16   16   93   65   35   47   7   86   74   61   91   85   24   85   43   59   12   32   56   3   91   22   90   55   15   28   89   25   47   1   56   40   43   56   16   75   36   89   98   76   81   4   94   42   30   78   33   29   53   63   2   87   37   80   84   72   41   9   61   73   95   65   13   58   96   98   1   21   74   65   35   5   73   11   51   87   41   12   8   20   31   31   15   95   22   73   79   88   34   8   11   49   34   90   59   96   60   55   75   77   44   2   7   85   57   74   29   70   59   19   39   26   26   47   80   90   36   58   47   9   72   72   66   33   93   75   64   81   9   23   37   13   12   14   62   91   36   91   33   15   34   36   99   3   95   69   58   52   30   50   84   10   84   33   21   39   44   58   30   38   34   83   27   82   17   7}
2179
2180do_execsql_test 1.9.3.1 {
2181  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2182} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2183
2184do_execsql_test 1.9.3.2 {
2185  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2186} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2187
2188do_execsql_test 1.9.4.1 {
2189  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2190} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2191
2192do_execsql_test 1.9.4.2 {
2193  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2194} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2195
2196do_execsql_test 1.9.4.3 {
2197  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2198} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
2199
2200do_execsql_test 1.9.4.4 {
2201  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2202} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
2203
2204do_execsql_test 1.9.4.5 {
2205  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2206} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
2207
2208do_execsql_test 1.9.4.6 {
2209  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2210} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
2211
2212do_execsql_test 1.9.5.1 {
2213  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2214} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2215
2216do_execsql_test 1.9.5.2 {
2217  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2218} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2219
2220do_execsql_test 1.9.5.3 {
2221  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2222} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
2223
2224do_execsql_test 1.9.5.4 {
2225  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2226} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
2227
2228do_execsql_test 1.9.5.5 {
2229  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2230} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
2231
2232do_execsql_test 1.9.5.6 {
2233  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2234} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
2235
2236do_execsql_test 1.9.6.1 {
2237  SELECT
2238      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ),
2239      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ),
2240      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW )
2241    FROM t2
2242} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
2243
2244do_test 1.9.7.1 {
2245  set myres {}
2246  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2247    lappend myres [format %.2f [set r]]
2248  }
2249  set myres
2250} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
2251
2252do_test 1.9.7.2 {
2253  set myres {}
2254  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2255    lappend myres [format %.2f [set r]]
2256  }
2257  set myres
2258} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
2259
2260do_test 1.9.7.3 {
2261  set myres {}
2262  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2263    lappend myres [format %.2f [set r]]
2264  }
2265  set myres
2266} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
2267
2268do_test 1.9.7.4 {
2269  set myres {}
2270  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2271    lappend myres [format %.2f [set r]]
2272  }
2273  set myres
2274} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
2275
2276do_test 1.9.7.5 {
2277  set myres {}
2278  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2279    lappend myres [format %.2f [set r]]
2280  }
2281  set myres
2282} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
2283
2284do_test 1.9.7.6 {
2285  set myres {}
2286  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2}] {
2287    lappend myres [format %.2f [set r]]
2288  }
2289  set myres
2290} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
2291
2292do_test 1.9.8.1 {
2293  set myres {}
2294  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2295    lappend myres [format %.2f [set r]]
2296  }
2297  set myres
2298} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
2299
2300do_test 1.9.8.2 {
2301  set myres {}
2302  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2303    lappend myres [format %.2f [set r]]
2304  }
2305  set myres
2306} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
2307
2308do_test 1.9.8.3 {
2309  set myres {}
2310  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2311    lappend myres [format %.2f [set r]]
2312  }
2313  set myres
2314} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
2315
2316do_test 1.9.8.4 {
2317  set myres {}
2318  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2319    lappend myres [format %.2f [set r]]
2320  }
2321  set myres
2322} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
2323
2324do_test 1.9.8.5 {
2325  set myres {}
2326  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2327    lappend myres [format %.2f [set r]]
2328  }
2329  set myres
2330} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2331
2332do_test 1.9.8.6 {
2333  set myres {}
2334  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2335    lappend myres [format %.2f [set r]]
2336  }
2337  set myres
2338} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2339
2340do_test 1.9.8.1 {
2341  set myres {}
2342  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2343    lappend myres [format %.2f [set r]]
2344  }
2345  set myres
2346} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
2347
2348do_test 1.9.8.2 {
2349  set myres {}
2350  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2351    lappend myres [format %.2f [set r]]
2352  }
2353  set myres
2354} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
2355
2356do_test 1.9.8.3 {
2357  set myres {}
2358  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2359    lappend myres [format %.2f [set r]]
2360  }
2361  set myres
2362} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
2363
2364do_test 1.9.8.4 {
2365  set myres {}
2366  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2367    lappend myres [format %.2f [set r]]
2368  }
2369  set myres
2370} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
2371
2372do_test 1.9.8.5 {
2373  set myres {}
2374  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
2375    lappend myres [format %.2f [set r]]
2376  }
2377  set myres
2378} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
2379
2380do_test 1.9.8.6 {
2381  set myres {}
2382  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2}] {
2383    lappend myres [format %.2f [set r]]
2384  }
2385  set myres
2386} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2387
2388do_execsql_test 1.9.9.1 {
2389  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2390} {1   76   44   78   28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279   224   280   216   207}
2391
2392do_execsql_test 1.9.9.2 {
2393  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2394} {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
2395
2396do_execsql_test 1.9.9.3 {
2397  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2398} {1   65   102   11   87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171   198   105   120   276}
2399
2400do_execsql_test 1.9.9.4 {
2401  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2402} {1   196   134   109   213   223   106   234   191   212   168   229   147   218   240   65   102   119   136   123   210   146   147   44   132   152   160   105   154   92   156   243   109   136   146   261   263   11   87   138   63   124   179   78   141   84   120   234   79   231   162   227   228   280   57   181   110   179   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   279   124   130   252   80   182   71   157   161   209   229   179   235   80   225   76   78   117   177   214   116   173   269   271   171   111   74   132   189   87   74   140   113   187   103   161   169   145   208   235   131   133   223   190   213   274   26   51   52   85   33   172   173   107   187   207   212   65   70   109   121   124   223   150   128   108   195   226   48   144   207   216   50   224   124   202   87   110   195   200   196   96   110   211   173   197   119   124   36   121   132   88   52   232   156   210   239   250   83   103   158   210   171   198   101   163   172   163   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150   161   105   120   276}
2403
2404do_execsql_test 1.9.9.5 {
2405  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2406} {1   147   106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229}
2407
2408do_execsql_test 1.9.9.6 {
2409  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
2410} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
2411
2412do_execsql_test 1.9.10.1 {
2413  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
2414} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2415
2416do_execsql_test 1.9.9.2 {
2417  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
2418} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2419
2420do_execsql_test 1.9.9.3 {
2421  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2422} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2423
2424do_execsql_test 1.9.9.4 {
2425  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2426} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2427
2428do_execsql_test 1.9.9.5 {
2429  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
2430} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2431
2432do_execsql_test 1.9.9.6 {
2433  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW) FROM t2
2434} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2435
2436do_execsql_test 1.10.2.1 {
2437  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2438} {74   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
2439
2440do_execsql_test 1.10.2.2 {
2441  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2442} {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
2443
2444do_execsql_test 1.10.3.1 {
2445  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2446} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2447
2448do_execsql_test 1.10.3.2 {
2449  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2450} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2451
2452do_execsql_test 1.10.4.1 {
2453  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2454} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2455
2456do_execsql_test 1.10.4.2 {
2457  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2458} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2459
2460do_execsql_test 1.10.4.3 {
2461  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2462} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
2463
2464do_execsql_test 1.10.4.4 {
2465  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2466} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
2467
2468do_execsql_test 1.10.4.5 {
2469  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2470} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
2471
2472do_execsql_test 1.10.4.6 {
2473  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2474} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
2475
2476do_execsql_test 1.10.5.1 {
2477  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2478} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2479
2480do_execsql_test 1.10.5.2 {
2481  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2482} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2483
2484do_execsql_test 1.10.5.3 {
2485  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2486} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
2487
2488do_execsql_test 1.10.5.4 {
2489  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2490} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
2491
2492do_execsql_test 1.10.5.5 {
2493  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2494} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
2495
2496do_execsql_test 1.10.5.6 {
2497  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2498} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
2499
2500do_execsql_test 1.10.6.1 {
2501  SELECT
2502      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ),
2503      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ),
2504      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING )
2505    FROM t2
2506} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
2507
2508do_test 1.10.7.1 {
2509  set myres {}
2510  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2511    lappend myres [format %.2f [set r]]
2512  }
2513  set myres
2514} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
2515
2516do_test 1.10.7.2 {
2517  set myres {}
2518  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2519    lappend myres [format %.2f [set r]]
2520  }
2521  set myres
2522} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
2523
2524do_test 1.10.7.3 {
2525  set myres {}
2526  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2527    lappend myres [format %.2f [set r]]
2528  }
2529  set myres
2530} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
2531
2532do_test 1.10.7.4 {
2533  set myres {}
2534  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2535    lappend myres [format %.2f [set r]]
2536  }
2537  set myres
2538} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
2539
2540do_test 1.10.7.5 {
2541  set myres {}
2542  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2543    lappend myres [format %.2f [set r]]
2544  }
2545  set myres
2546} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
2547
2548do_test 1.10.7.6 {
2549  set myres {}
2550  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2}] {
2551    lappend myres [format %.2f [set r]]
2552  }
2553  set myres
2554} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
2555
2556do_test 1.10.8.1 {
2557  set myres {}
2558  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2559    lappend myres [format %.2f [set r]]
2560  }
2561  set myres
2562} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
2563
2564do_test 1.10.8.2 {
2565  set myres {}
2566  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2567    lappend myres [format %.2f [set r]]
2568  }
2569  set myres
2570} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
2571
2572do_test 1.10.8.3 {
2573  set myres {}
2574  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2575    lappend myres [format %.2f [set r]]
2576  }
2577  set myres
2578} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
2579
2580do_test 1.10.8.4 {
2581  set myres {}
2582  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2583    lappend myres [format %.2f [set r]]
2584  }
2585  set myres
2586} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
2587
2588do_test 1.10.8.5 {
2589  set myres {}
2590  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2591    lappend myres [format %.2f [set r]]
2592  }
2593  set myres
2594} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2595
2596do_test 1.10.8.6 {
2597  set myres {}
2598  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2599    lappend myres [format %.2f [set r]]
2600  }
2601  set myres
2602} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2603
2604do_test 1.10.8.1 {
2605  set myres {}
2606  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2607    lappend myres [format %.2f [set r]]
2608  }
2609  set myres
2610} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
2611
2612do_test 1.10.8.2 {
2613  set myres {}
2614  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2615    lappend myres [format %.2f [set r]]
2616  }
2617  set myres
2618} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
2619
2620do_test 1.10.8.3 {
2621  set myres {}
2622  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2623    lappend myres [format %.2f [set r]]
2624  }
2625  set myres
2626} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
2627
2628do_test 1.10.8.4 {
2629  set myres {}
2630  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2631    lappend myres [format %.2f [set r]]
2632  }
2633  set myres
2634} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
2635
2636do_test 1.10.8.5 {
2637  set myres {}
2638  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
2639    lappend myres [format %.2f [set r]]
2640  }
2641  set myres
2642} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
2643
2644do_test 1.10.8.6 {
2645  set myres {}
2646  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2}] {
2647    lappend myres [format %.2f [set r]]
2648  }
2649  set myres
2650} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2651
2652do_execsql_test 1.10.9.1 {
2653  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2654} {28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279   224   280   216   207   207   207   207   207}
2655
2656do_execsql_test 1.10.9.2 {
2657  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2658} {168   134   218   191   212   229   240   213   234   196   223   223   223   223   223   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   210   210   210   210   78   120   87   162   124   141   138   227   228   179   231   234   280   280   280   280   280   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   279   279   279   279   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   229   229   229   229   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   274   274   274   274   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   212   212   212   212   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   207   207   207   207   88   171   158   156   198   121   210   132   210   239   250   232   232   232   232   232   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229   229   229}
2659
2660do_execsql_test 1.10.9.3 {
2661  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2662} {87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171   198   105   120   276   276   276   276   276}
2663
2664do_execsql_test 1.10.9.4 {
2665  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2666} {213   223   106   234   191   212   168   229   147   218   240   240   240   240   240   123   210   146   147   44   132   152   160   105   154   92   156   243   109   136   146   261   263   263   263   263   263   124   179   78   141   84   120   234   79   231   162   227   228   280   280   280   280   280   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   279   124   130   252   252   252   252   252   161   209   229   179   235   80   225   76   78   117   177   214   116   173   269   271   171   171   171   171   171   87   74   140   113   187   103   161   169   145   208   235   131   133   223   190   213   274   274   274   274   274   33   172   173   107   187   207   212   65   70   109   121   124   223   150   128   108   195   226   226   226   226   226   50   224   124   202   87   110   195   200   196   96   110   211   173   197   119   124   124   124   124   124   52   232   156   210   239   250   83   103   158   210   171   198   198   198   198   198   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150   161   105   120   276   276   276   276   276}
2667
2668do_execsql_test 1.10.9.5 {
2669  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2670} {168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229   229   229}
2671
2672do_execsql_test 1.10.9.6 {
2673  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
2674} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
2675
2676do_execsql_test 1.10.10.1 {
2677  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
2678} {0   {}   {}   {}   {}   {}   {}   {}   41   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   2   {}   29   {}   {}   {}   46   62   62   {}   {}   16   {}   33   {}   {}   {}   {}   {}   78   {}   61   {}   59   77   90   74   {}   27   {}   22   39   67   {}   54   85   74   90   7   61   90   62   {}   93   {}   {}   94   {}   23   {}   74   93   30   23   29   3   1   41   80   65   33   2   98   86   89   25   76   65   40   38   15   13   96   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
2679
2680do_execsql_test 1.10.9.2 {
2681  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
2682} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   {}   21   {}   {}   {}   {}   21   {}   {}   {}   21   12   {}   {}   {}   {}   {}   12   {}   72   {}   12   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   23   {}   {}   {}   {}   {}   73   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   55   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   16   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   27   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   98   {}   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   {}   {}   {}   {}   {}   9   {}   29   29   {}   {}   {}}
2683
2684do_execsql_test 1.10.9.3 {
2685  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2686} {0   1   1   1   1   1   2   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
2687
2688do_execsql_test 1.10.9.4 {
2689  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2690} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   1   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   2   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   13   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2691
2692do_execsql_test 1.10.9.5 {
2693  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
2694} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   90   1   30   {}   {}   31   31   30   {}   {}   {}   1   40   {}   50   11   81   42   40   {}   50   81   40   {}   {}   50   {}   52   {}   41   81   {}   41   {}   2   30   2   81   82   53   {}   10   {}   {}   81   {}   41   10   81   30   81   {}   3   3   23   94   3   61   80   {}   94   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
2695
2696do_execsql_test 1.10.9.6 {
2697  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
2698} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2699
2700do_execsql_test 1.11.2.1 {
2701  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2702} {74   74   74   99   99   99   99   99   99   99   96   96   96   96   96   96   91   91   99   99   99   99   99   99   99   97   97   97   97   97   97   93   93   93   93   93   93   93   93   93   93   86   91   91   91   91   91   91   91   85   85   85   91   91   91   91   91   91   91   90   90   89   89   89   89   56   56   75   75   89   98   98   98   98   98   98   98   94   94   94   94   78   78   87   87   87   87   87   87   87   84   84   95   95   95   95   96   98   98   98   98   98   98   98   74   74   74   87   87   87   87   87   87   87   41   95   95   95   95   95   95   95   88   88   88   90   90   96   96   96   96   96   96   96   77   85   85   85   85   85   85   85   74   74   70   70   80   90   90   90   90   90   90   90   72   72   93   93   93   93   93   93   93   81   81   81   62   91   91   91   91   91   91   91   99   99   99   99   99   99   99   95   95   84   84   84   84   84   84   84   84   58   58   83   83   83   83   83   83   83}
2703
2704do_execsql_test 1.11.2.2 {
2705  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2706} {0   0   0   0   0   23   2   2   2   2   2   2   2   38   38   38   38   6   6   6   6   6   6   6   27   8   8   8   8   8   8   8   16   16   16   16   16   16   7   7   7   7   7   7   7   24   24   24   12   12   12   3   3   3   3   3   3   3   15   15   15   1   1   1   1   1   1   1   16   16   16   16   16   4   4   4   4   4   4   4   29   29   2   2   2   2   2   2   2   9   9   9   9   9   9   9   13   13   1   1   1   1   1   1   1   5   5   5   5   5   8   8   8   8   8   8   8   15   15   15   15   8   8   8   8   8   8   8   11   34   34   55   44   2   2   2   2   2   2   2   7   19   19   19   19   19   19   19   26   26   26   9   9   9   9   9   9   9   33   33   9   9   9   9   9   9   9   12   12   12   12   14   15   15   15   3   3   3   3   3   3   3   30   10   10   10   10   10   10   10   21   21   21   30   27   27   17   7   7   7}
2707
2708do_execsql_test 1.11.3.1 {
2709  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2710} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2711
2712do_execsql_test 1.11.3.2 {
2713  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2714} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2715
2716do_execsql_test 1.11.4.1 {
2717  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2718} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2719
2720do_execsql_test 1.11.4.2 {
2721  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2722} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2723
2724do_execsql_test 1.11.4.3 {
2725  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2726} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
2727
2728do_execsql_test 1.11.4.4 {
2729  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2730} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
2731
2732do_execsql_test 1.11.4.5 {
2733  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2734} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
2735
2736do_execsql_test 1.11.4.6 {
2737  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2738} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
2739
2740do_execsql_test 1.11.5.1 {
2741  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2742} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2743
2744do_execsql_test 1.11.5.2 {
2745  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2746} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2747
2748do_execsql_test 1.11.5.3 {
2749  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2750} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
2751
2752do_execsql_test 1.11.5.4 {
2753  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2754} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
2755
2756do_execsql_test 1.11.5.5 {
2757  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2758} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
2759
2760do_execsql_test 1.11.5.6 {
2761  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2762} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
2763
2764do_execsql_test 1.11.6.1 {
2765  SELECT
2766      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ),
2767      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ),
2768      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING )
2769    FROM t2
2770} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
2771
2772do_test 1.11.7.1 {
2773  set myres {}
2774  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2775    lappend myres [format %.2f [set r]]
2776  }
2777  set myres
2778} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
2779
2780do_test 1.11.7.2 {
2781  set myres {}
2782  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2783    lappend myres [format %.2f [set r]]
2784  }
2785  set myres
2786} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
2787
2788do_test 1.11.7.3 {
2789  set myres {}
2790  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2791    lappend myres [format %.2f [set r]]
2792  }
2793  set myres
2794} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
2795
2796do_test 1.11.7.4 {
2797  set myres {}
2798  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2799    lappend myres [format %.2f [set r]]
2800  }
2801  set myres
2802} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
2803
2804do_test 1.11.7.5 {
2805  set myres {}
2806  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2807    lappend myres [format %.2f [set r]]
2808  }
2809  set myres
2810} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
2811
2812do_test 1.11.7.6 {
2813  set myres {}
2814  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2}] {
2815    lappend myres [format %.2f [set r]]
2816  }
2817  set myres
2818} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
2819
2820do_test 1.11.8.1 {
2821  set myres {}
2822  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2823    lappend myres [format %.2f [set r]]
2824  }
2825  set myres
2826} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
2827
2828do_test 1.11.8.2 {
2829  set myres {}
2830  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2831    lappend myres [format %.2f [set r]]
2832  }
2833  set myres
2834} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
2835
2836do_test 1.11.8.3 {
2837  set myres {}
2838  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2839    lappend myres [format %.2f [set r]]
2840  }
2841  set myres
2842} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
2843
2844do_test 1.11.8.4 {
2845  set myres {}
2846  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2847    lappend myres [format %.2f [set r]]
2848  }
2849  set myres
2850} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
2851
2852do_test 1.11.8.5 {
2853  set myres {}
2854  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2855    lappend myres [format %.2f [set r]]
2856  }
2857  set myres
2858} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2859
2860do_test 1.11.8.6 {
2861  set myres {}
2862  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2863    lappend myres [format %.2f [set r]]
2864  }
2865  set myres
2866} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2867
2868do_test 1.11.8.1 {
2869  set myres {}
2870  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2871    lappend myres [format %.2f [set r]]
2872  }
2873  set myres
2874} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
2875
2876do_test 1.11.8.2 {
2877  set myres {}
2878  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2879    lappend myres [format %.2f [set r]]
2880  }
2881  set myres
2882} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
2883
2884do_test 1.11.8.3 {
2885  set myres {}
2886  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2887    lappend myres [format %.2f [set r]]
2888  }
2889  set myres
2890} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
2891
2892do_test 1.11.8.4 {
2893  set myres {}
2894  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2895    lappend myres [format %.2f [set r]]
2896  }
2897  set myres
2898} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
2899
2900do_test 1.11.8.5 {
2901  set myres {}
2902  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
2903    lappend myres [format %.2f [set r]]
2904  }
2905  set myres
2906} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
2907
2908do_test 1.11.8.6 {
2909  set myres {}
2910  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2}] {
2911    lappend myres [format %.2f [set r]]
2912  }
2913  set myres
2914} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
2915
2916do_execsql_test 1.11.9.1 {
2917  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2918} {44   78   28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279   224   280   216   207   207   207}
2919
2920do_execsql_test 1.11.9.2 {
2921  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2922} {106   109   168   134   218   191   212   229   240   213   234   196   223   223   223   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   210   210   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   280   280   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   279   279   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   229   229   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   274   274   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   212   212   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   207   207   103   36   88   171   158   156   198   121   210   132   210   239   250   232   232   232   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229}
2923
2924do_execsql_test 1.11.9.3 {
2925  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2926} {102   11   87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171   198   105   120   276   276   276}
2927
2928do_execsql_test 1.11.9.4 {
2929  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2930} {134   109   213   223   106   234   191   212   168   229   147   218   240   240   240   119   136   123   210   146   147   44   132   152   160   105   154   92   156   243   109   136   146   261   263   263   263   138   63   124   179   78   141   84   120   234   79   231   162   227   228   280   280   280   110   179   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   279   124   130   252   252   252   71   157   161   209   229   179   235   80   225   76   78   117   177   214   116   173   269   271   171   171   171   132   189   87   74   140   113   187   103   161   169   145   208   235   131   133   223   190   213   274   274   274   52   85   33   172   173   107   187   207   212   65   70   109   121   124   223   150   128   108   195   226   226   226   207   216   50   224   124   202   87   110   195   200   196   96   110   211   173   197   119   124   124   124   132   88   52   232   156   210   239   250   83   103   158   210   171   198   198   198   172   163   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150   161   105   120   276   276   276}
2931
2932do_execsql_test 1.11.9.5 {
2933  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2934} {106   109   168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229}
2935
2936do_execsql_test 1.11.9.6 {
2937  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2
2938} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
2939
2940do_execsql_test 1.11.10.1 {
2941  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2
2942} {0   {}   {}   {}   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   97   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   56   {}   {}   {}   {}   {}   {}   {}   {}   {}   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   {}   {}   {}   {}   73   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   77   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2943
2944do_execsql_test 1.11.9.2 {
2945  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2
2946} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2947
2948do_execsql_test 1.11.9.3 {
2949  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2950} {0   1   1   1   1   2   2   3   4   6   7   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2951
2952do_execsql_test 1.11.9.4 {
2953  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2954} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   1   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   2   2   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2955
2956do_execsql_test 1.11.9.5 {
2957  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
2958} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   91   {}   {}   {}   {}   {}   22   {}   {}   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   16   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2959
2960do_execsql_test 1.11.9.6 {
2961  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING) FROM t2
2962} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
2963
2964do_execsql_test 1.12.2.1 {
2965  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
2966} {74   99   99   99   99   99   89   96   96   96   96   96   68   91   91   91   99   99   99   99   99   97   97   97   97   97   97   93   93   93   93   84   93   93   93   93   93   86   86   86   91   91   91   91   91   85   85   85   59   59   91   91   91   91   91   90   90   89   89   89   89   56   56   56   56   75   75   89   98   98   98   98   98   94   94   94   94   78   78   78   63   87   87   87   87   87   84   84   84   73   95   95   95   95   96   98   98   98   98   98   74   74   74   73   73   87   87   87   87   87   41   31   31   95   95   95   95   95   88   88   88   88   49   90   90   96   96   96   96   96   77   77   77   85   85   85   85   85   74   74   70   70   59   47   80   90   90   90   90   90   72   72   72   72   93   93   93   93   93   81   81   81   37   37   62   91   91   91   91   91   91   91   99   99   99   99   99   95   95   69   84   84   84   84   84   84   84   58   58   58   58   83   83   83   83   83   82   82   17   7}
2967
2968do_execsql_test 1.12.2.2 {
2969  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
2970} {0   23   23   23   2   2   2   2   2   38   38   38   38   38   39   6   6   6   6   6   27   27   27   8   8   8   8   8   29   23   16   16   16   16   16   16   7   7   7   7   7   61   24   24   24   24   12   12   12   3   3   3   3   3   15   15   15   15   15   1   1   1   1   1   16   16   16   16   16   36   36   4   4   4   4   4   30   29   29   29   2   2   2   2   2   37   37   9   9   9   9   9   13   13   13   13   1   1   1   1   1   5   5   5   5   5   11   11   8   8   8   8   8   15   15   15   15   22   22   8   8   8   8   8   11   34   34   55   55   55   44   2   2   2   2   2   7   29   29   19   19   19   19   19   26   26   26   36   36   9   9   9   9   9   33   33   33   33   9   9   9   9   9   12   12   12   12   14   33   15   15   15   15   3   3   3   3   3   30   30   30   10   10   10   10   10   21   21   21   30   30   30   27   27   17   7   7   7   7   7}
2971
2972do_execsql_test 1.12.3.1 {
2973  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
2974} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2975
2976do_execsql_test 1.12.3.2 {
2977  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
2978} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2979
2980do_execsql_test 1.12.4.1 {
2981  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
2982} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
2983
2984do_execsql_test 1.12.4.2 {
2985  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
2986} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
2987
2988do_execsql_test 1.12.4.3 {
2989  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
2990} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
2991
2992do_execsql_test 1.12.4.4 {
2993  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
2994} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
2995
2996do_execsql_test 1.12.4.5 {
2997  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
2998} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
2999
3000do_execsql_test 1.12.4.6 {
3001  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3002} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
3003
3004do_execsql_test 1.12.5.1 {
3005  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3006} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
3007
3008do_execsql_test 1.12.5.2 {
3009  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3010} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
3011
3012do_execsql_test 1.12.5.3 {
3013  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3014} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
3015
3016do_execsql_test 1.12.5.4 {
3017  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3018} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
3019
3020do_execsql_test 1.12.5.5 {
3021  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3022} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
3023
3024do_execsql_test 1.12.5.6 {
3025  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3026} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
3027
3028do_execsql_test 1.12.6.1 {
3029  SELECT
3030      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ),
3031      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ),
3032      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING )
3033    FROM t2
3034} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
3035
3036do_test 1.12.7.1 {
3037  set myres {}
3038  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3039    lappend myres [format %.2f [set r]]
3040  }
3041  set myres
3042} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
3043
3044do_test 1.12.7.2 {
3045  set myres {}
3046  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3047    lappend myres [format %.2f [set r]]
3048  }
3049  set myres
3050} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
3051
3052do_test 1.12.7.3 {
3053  set myres {}
3054  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3055    lappend myres [format %.2f [set r]]
3056  }
3057  set myres
3058} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
3059
3060do_test 1.12.7.4 {
3061  set myres {}
3062  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3063    lappend myres [format %.2f [set r]]
3064  }
3065  set myres
3066} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
3067
3068do_test 1.12.7.5 {
3069  set myres {}
3070  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3071    lappend myres [format %.2f [set r]]
3072  }
3073  set myres
3074} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
3075
3076do_test 1.12.7.6 {
3077  set myres {}
3078  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2}] {
3079    lappend myres [format %.2f [set r]]
3080  }
3081  set myres
3082} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
3083
3084do_test 1.12.8.1 {
3085  set myres {}
3086  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3087    lappend myres [format %.2f [set r]]
3088  }
3089  set myres
3090} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
3091
3092do_test 1.12.8.2 {
3093  set myres {}
3094  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3095    lappend myres [format %.2f [set r]]
3096  }
3097  set myres
3098} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
3099
3100do_test 1.12.8.3 {
3101  set myres {}
3102  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3103    lappend myres [format %.2f [set r]]
3104  }
3105  set myres
3106} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
3107
3108do_test 1.12.8.4 {
3109  set myres {}
3110  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3111    lappend myres [format %.2f [set r]]
3112  }
3113  set myres
3114} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
3115
3116do_test 1.12.8.5 {
3117  set myres {}
3118  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3119    lappend myres [format %.2f [set r]]
3120  }
3121  set myres
3122} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3123
3124do_test 1.12.8.6 {
3125  set myres {}
3126  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3127    lappend myres [format %.2f [set r]]
3128  }
3129  set myres
3130} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3131
3132do_test 1.12.8.1 {
3133  set myres {}
3134  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3135    lappend myres [format %.2f [set r]]
3136  }
3137  set myres
3138} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
3139
3140do_test 1.12.8.2 {
3141  set myres {}
3142  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3143    lappend myres [format %.2f [set r]]
3144  }
3145  set myres
3146} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
3147
3148do_test 1.12.8.3 {
3149  set myres {}
3150  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3151    lappend myres [format %.2f [set r]]
3152  }
3153  set myres
3154} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
3155
3156do_test 1.12.8.4 {
3157  set myres {}
3158  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3159    lappend myres [format %.2f [set r]]
3160  }
3161  set myres
3162} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
3163
3164do_test 1.12.8.5 {
3165  set myres {}
3166  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
3167    lappend myres [format %.2f [set r]]
3168  }
3169  set myres
3170} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
3171
3172do_test 1.12.8.6 {
3173  set myres {}
3174  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2}] {
3175    lappend myres [format %.2f [set r]]
3176  }
3177  set myres
3178} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3179
3180do_execsql_test 1.12.9.1 {
3181  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3182} {28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279   224   280   216   207   207   207   207   207}
3183
3184do_execsql_test 1.12.9.2 {
3185  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3186} {168   134   218   191   212   229   240   213   234   196   223   223   223   223   223   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   210   210   210   210   78   120   87   162   124   141   138   227   228   179   231   234   280   280   280   280   280   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   279   279   279   279   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   229   229   229   229   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   274   274   274   274   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   212   212   212   212   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   207   207   207   207   88   171   158   156   198   121   210   132   210   239   250   232   232   232   232   232   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229   229   229}
3187
3188do_execsql_test 1.12.9.3 {
3189  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3190} {87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171   198   105   120   276   276   276   276   276}
3191
3192do_execsql_test 1.12.9.4 {
3193  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3194} {213   223   106   234   191   212   168   229   147   218   240   240   240   240   240   123   210   146   147   44   132   152   160   105   154   92   156   243   109   136   146   261   263   263   263   263   263   124   179   78   141   84   120   234   79   231   162   227   228   280   280   280   280   280   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   279   124   130   252   252   252   252   252   161   209   229   179   235   80   225   76   78   117   177   214   116   173   269   271   171   171   171   171   171   87   74   140   113   187   103   161   169   145   208   235   131   133   223   190   213   274   274   274   274   274   33   172   173   107   187   207   212   65   70   109   121   124   223   150   128   108   195   226   226   226   226   226   50   224   124   202   87   110   195   200   196   96   110   211   173   197   119   124   124   124   124   124   52   232   156   210   239   250   83   103   158   210   171   198   198   198   198   198   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150   161   105   120   276   276   276   276   276}
3195
3196do_execsql_test 1.12.9.5 {
3197  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3198} {168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229   229   229}
3199
3200do_execsql_test 1.12.9.6 {
3201  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2
3202} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
3203
3204do_execsql_test 1.12.10.1 {
3205  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2
3206} {0   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   {}   {}   56   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   78   {}   {}   {}   {}   {}   {}   {}   {}   37   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3207
3208do_execsql_test 1.12.9.2 {
3209  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2
3210} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   {}   {}   12   {}   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3211
3212do_execsql_test 1.12.9.3 {
3213  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3214} {0   1   2   2   3   3   5   6   7   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3215
3216do_execsql_test 1.12.9.4 {
3217  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3218} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   11   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   12   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   23   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3219
3220do_execsql_test 1.12.9.5 {
3221  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
3222} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   {}   {}   {}   {}   12   {}   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3223
3224do_execsql_test 1.12.9.6 {
3225  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING) FROM t2
3226} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3227
3228do_execsql_test 1.13.2.1 {
3229  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3230} {74   99   99   99   33   89   89   96   96   96   68   68   68   91   91   91   99   99   99   97   78   78   97   97   97   67   93   93   93   84   77   23   93   93   93   65   47   86   86   86   91   91   91   85   85   85   59   59   56   56   91   91   91   90   90   55   89   89   89   47   56   56   56   56   56   75   75   89   98   98   98   81   94   94   94   78   78   78   53   63   63   87   87   87   84   84   84   72   61   73   95   95   95   65   96   98   98   98   74   74   74   65   73   73   73   87   87   87   41   20   31   31   31   95   95   95   79   88   88   88   34   49   49   90   90   96   96   96   75   77   77   77   44   85   85   85   74   74   70   70   59   39   39   47   80   90   90   90   58   58   72   72   72   72   93   93   93   81   81   81   37   37   37   14   62   91   91   91   91   91   34   36   99   99   99   95   95   69   58   52   84   84   84   84   84   39   44   58   58   58   38   83   83   83   82   82   17   7   {}   {}}
3231
3232do_execsql_test 1.13.2.2 {
3233  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3234} {23   23   23   26   2   2   2   81   59   38   38   38   39   39   46   6   6   6   27   27   27   46   54   8   8   8   29   29   77   23   16   16   16   16   35   35   7   7   7   61   61   61   24   24   24   43   12   12   12   3   3   3   22   22   15   15   15   25   25   1   1   1   40   40   16   16   16   36   36   76   76   4   4   4   30   30   30   29   29   29   2   2   2   37   37   72   41   9   9   9   61   65   13   13   13   58   1   1   1   21   35   5   5   5   11   11   41   12   8   8   8   20   15   15   15   22   22   73   34   8   8   8   11   34   34   59   59   55   55   55   44   2   2   2   7   57   29   29   29   19   19   19   26   26   26   47   36   36   36   9   9   9   66   33   33   33   64   64   9   9   9   13   12   12   12   14   36   36   33   15   15   15   34   3   3   3   58   52   30   30   30   10   10   10   21   21   21   39   30   30   30   34   27   27   17   7   7   7   {}   {}}
3235
3236do_execsql_test 1.13.3.1 {
3237  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3238} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
3239
3240do_execsql_test 1.13.3.2 {
3241  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3242} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
3243
3244do_execsql_test 1.13.4.1 {
3245  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3246} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
3247
3248do_execsql_test 1.13.4.2 {
3249  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3250} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
3251
3252do_execsql_test 1.13.4.3 {
3253  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3254} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
3255
3256do_execsql_test 1.13.4.4 {
3257  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3258} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
3259
3260do_execsql_test 1.13.4.5 {
3261  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3262} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
3263
3264do_execsql_test 1.13.4.6 {
3265  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3266} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
3267
3268do_execsql_test 1.13.5.1 {
3269  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3270} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
3271
3272do_execsql_test 1.13.5.2 {
3273  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3274} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
3275
3276do_execsql_test 1.13.5.3 {
3277  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3278} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
3279
3280do_execsql_test 1.13.5.4 {
3281  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3282} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
3283
3284do_execsql_test 1.13.5.5 {
3285  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3286} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
3287
3288do_execsql_test 1.13.5.6 {
3289  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3290} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
3291
3292do_execsql_test 1.13.6.1 {
3293  SELECT
3294      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ),
3295      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ),
3296      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING )
3297    FROM t2
3298} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
3299
3300do_test 1.13.7.1 {
3301  set myres {}
3302  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3303    lappend myres [format %.2f [set r]]
3304  }
3305  set myres
3306} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
3307
3308do_test 1.13.7.2 {
3309  set myres {}
3310  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3311    lappend myres [format %.2f [set r]]
3312  }
3313  set myres
3314} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
3315
3316do_test 1.13.7.3 {
3317  set myres {}
3318  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3319    lappend myres [format %.2f [set r]]
3320  }
3321  set myres
3322} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
3323
3324do_test 1.13.7.4 {
3325  set myres {}
3326  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3327    lappend myres [format %.2f [set r]]
3328  }
3329  set myres
3330} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
3331
3332do_test 1.13.7.5 {
3333  set myres {}
3334  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3335    lappend myres [format %.2f [set r]]
3336  }
3337  set myres
3338} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
3339
3340do_test 1.13.7.6 {
3341  set myres {}
3342  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2}] {
3343    lappend myres [format %.2f [set r]]
3344  }
3345  set myres
3346} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
3347
3348do_test 1.13.8.1 {
3349  set myres {}
3350  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3351    lappend myres [format %.2f [set r]]
3352  }
3353  set myres
3354} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
3355
3356do_test 1.13.8.2 {
3357  set myres {}
3358  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3359    lappend myres [format %.2f [set r]]
3360  }
3361  set myres
3362} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
3363
3364do_test 1.13.8.3 {
3365  set myres {}
3366  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3367    lappend myres [format %.2f [set r]]
3368  }
3369  set myres
3370} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
3371
3372do_test 1.13.8.4 {
3373  set myres {}
3374  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3375    lappend myres [format %.2f [set r]]
3376  }
3377  set myres
3378} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
3379
3380do_test 1.13.8.5 {
3381  set myres {}
3382  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3383    lappend myres [format %.2f [set r]]
3384  }
3385  set myres
3386} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3387
3388do_test 1.13.8.6 {
3389  set myres {}
3390  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3391    lappend myres [format %.2f [set r]]
3392  }
3393  set myres
3394} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3395
3396do_test 1.13.8.1 {
3397  set myres {}
3398  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3399    lappend myres [format %.2f [set r]]
3400  }
3401  set myres
3402} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
3403
3404do_test 1.13.8.2 {
3405  set myres {}
3406  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3407    lappend myres [format %.2f [set r]]
3408  }
3409  set myres
3410} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
3411
3412do_test 1.13.8.3 {
3413  set myres {}
3414  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3415    lappend myres [format %.2f [set r]]
3416  }
3417  set myres
3418} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
3419
3420do_test 1.13.8.4 {
3421  set myres {}
3422  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3423    lappend myres [format %.2f [set r]]
3424  }
3425  set myres
3426} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
3427
3428do_test 1.13.8.5 {
3429  set myres {}
3430  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
3431    lappend myres [format %.2f [set r]]
3432  }
3433  set myres
3434} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
3435
3436do_test 1.13.8.6 {
3437  set myres {}
3438  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2}] {
3439    lappend myres [format %.2f [set r]]
3440  }
3441  set myres
3442} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3443
3444do_execsql_test 1.13.9.1 {
3445  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3446} {28   105   33   41   11   99   92   108   72   52   83   55   79   109   65   26   120   119   50   70   103   80   124   36   96   59   124   116   110   57   51   52   130   103   74   87   48   128   117   105   136   131   71   133   92   109   63   84   109   57   146   78   147   113   74   88   150   87   110   65   121   106   110   124   85   145   107   161   171   150   156   80   171   120   109   158   114   111   136   147   87   173   124   168   173   162   132   101   154   167   190   161   110   156   195   198   102   123   177   169   140   111   180   119   160   197   152   124   121   134   146   147   132   213   141   193   200   210   157   132   136   175   161   218   188   226   191   187   208   211   179   138   144   223   196   214   170   212   202   163   184   172   173   195   229   240   187   210   200   163   227   228   223   191   252   235   225   243   172   187   202   179   179   182   231   261   207   263   206   189   209   212   276   181   274   249   239   234   213   234   269   196   271   221   210   229   235   250   223   232   229   279   224   280   216   207   207   207   {}   {}}
3447
3448do_execsql_test 1.13.9.2 {
3449  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3450} {168   134   218   191   212   229   240   213   234   196   223   223   223   {}   {}   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   210   210   {}   {}   78   120   87   162   124   141   138   227   228   179   231   234   280   280   280   {}   {}   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   279   279   {}   {}   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   229   229   {}   {}   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   274   274   {}   {}   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   212   212   {}   {}   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   207   207   {}   {}   88   171   158   156   198   121   210   132   210   239   250   232   232   232   {}   {}   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229   {}   {}}
3451
3452do_execsql_test 1.13.9.3 {
3453  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3454} {87   138   57   181   80   111   26   48   144   207   36   121   132   101   163   172   196   119   136   63   124   179   110   179   182   74   132   189   51   52   85   216   163   134   123   210   78   141   28   57   187   71   87   33   172   173   50   224   88   59   111   170   109   213   223   146   147   84   41   114   191   206   221   157   161   209   229   74   140   107   187   207   212   124   202   52   232   55   184   229   106   44   132   152   120   92   110   179   235   65   70   87   110   195   200   175   234   160   234   136   80   113   187   109   121   124   196   156   210   239   250   72   109   188   202   191   105   154   79   231   147   225   103   161   169   223   96   83   249   212   162   227   228   167   180   193   76   78   117   177   214   145   208   235   150   110   211   103   158   200   168   229   92   156   243   280   279   116   173   269   271   131   133   223   128   173   197   210   99   150   161   147   218   240   109   136   146   261   263   124   130   252   171   190   213   274   108   195   226   119   124   171   198   105   120   276   276   276   {}   {}}
3455
3456do_execsql_test 1.13.9.4 {
3457  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3458} {213   223   106   234   191   212   168   229   147   218   240   240   240   {}   {}   123   210   146   147   44   132   152   160   105   154   92   156   243   109   136   146   261   263   263   263   {}   {}   124   179   78   141   84   120   234   79   231   162   227   228   280   280   280   {}   {}   28   57   187   41   114   191   206   221   92   110   136   147   167   180   193   279   124   130   252   252   252   {}   {}   161   209   229   179   235   80   225   76   78   117   177   214   116   173   269   271   171   171   171   {}   {}   87   74   140   113   187   103   161   169   145   208   235   131   133   223   190   213   274   274   274   {}   {}   33   172   173   107   187   207   212   65   70   109   121   124   223   150   128   108   195   226   226   226   {}   {}   50   224   124   202   87   110   195   200   196   96   110   211   173   197   119   124   124   124   {}   {}   52   232   156   210   239   250   83   103   158   210   171   198   198   198   {}   {}   59   111   170   55   184   229   175   72   109   188   202   249   200   99   150   161   105   120   276   276   276   {}   {}}
3459
3460do_execsql_test 1.13.9.5 {
3461  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3462} {168   134   218   191   212   229   240   213   234   196   223   44   92   109   105   136   146   65   156   132   154   102   123   119   160   152   146   147   136   243   261   263   210   11   79   63   84   78   120   87   162   124   141   138   227   228   179   231   234   280   28   41   124   57   130   92   57   110   114   136   147   167   110   180   193   191   252   187   179   206   181   221   279   76   78   80   116   117   71   80   171   173   177   157   161   179   214   225   182   209   269   271   235   229   103   74   131   133   113   74   87   145   190   161   169   140   111   132   213   187   208   223   235   189   274   33   108   65   26   70   51   52   128   109   121   124   85   107   150   195   226   172   173   187   223   207   212   119   50   124   96   110   87   48   110   173   124   197   211   144   196   195   200   202   224   216   207   52   83   103   36   88   171   158   156   198   121   210   132   210   239   250   232   105   99   72   55   120   59   109   150   161   111   101   200   175   188   170   202   163   184   163   172   276   249   229   229   229   {}   {}}
3463
3464do_execsql_test 1.13.9.6 {
3465  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2
3466} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3467
3468do_execsql_test 1.13.10.1 {
3469  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2
3470} {41   {}   {}   {}   {}   {}   {}   {}   59   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   84   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   65   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3471
3472do_execsql_test 1.13.9.2 {
3473  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2
3474} {40   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   51   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   22   {}   {}   {}   {}   {}   2   {}   {}   {}   62   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3475
3476do_execsql_test 1.13.9.3 {
3477  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3478} {1   2   2   3   4   5   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3479
3480do_execsql_test 1.13.9.4 {
3481  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3482} {20   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   11   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   12   22   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3483
3484do_execsql_test 1.13.9.5 {
3485  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
3486} {40   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   51   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   22   {}   {}   {}   {}   {}   2   {}   {}   {}   62   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3487
3488do_execsql_test 1.13.9.6 {
3489  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING) FROM t2
3490} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3491
3492do_execsql_test 1.14.2.1 {
3493  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3494} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
3495
3496do_execsql_test 1.14.2.2 {
3497  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3498} {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
3499
3500do_execsql_test 1.14.3.1 {
3501  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3502} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
3503
3504do_execsql_test 1.14.3.2 {
3505  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3506} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
3507
3508do_execsql_test 1.14.4.1 {
3509  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3510} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
3511
3512do_execsql_test 1.14.4.2 {
3513  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3514} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
3515
3516do_execsql_test 1.14.4.3 {
3517  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3518} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
3519
3520do_execsql_test 1.14.4.4 {
3521  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3522} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
3523
3524do_execsql_test 1.14.4.5 {
3525  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3526} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
3527
3528do_execsql_test 1.14.4.6 {
3529  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3530} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
3531
3532do_execsql_test 1.14.5.1 {
3533  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3534} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
3535
3536do_execsql_test 1.14.5.2 {
3537  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3538} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
3539
3540do_execsql_test 1.14.5.3 {
3541  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3542} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
3543
3544do_execsql_test 1.14.5.4 {
3545  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3546} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
3547
3548do_execsql_test 1.14.5.5 {
3549  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3550} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
3551
3552do_execsql_test 1.14.5.6 {
3553  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3554} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
3555
3556do_execsql_test 1.14.6.1 {
3557  SELECT
3558      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ),
3559      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ),
3560      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )
3561    FROM t2
3562} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
3563
3564do_test 1.14.7.1 {
3565  set myres {}
3566  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3567    lappend myres [format %.2f [set r]]
3568  }
3569  set myres
3570} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
3571
3572do_test 1.14.7.2 {
3573  set myres {}
3574  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3575    lappend myres [format %.2f [set r]]
3576  }
3577  set myres
3578} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
3579
3580do_test 1.14.7.3 {
3581  set myres {}
3582  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3583    lappend myres [format %.2f [set r]]
3584  }
3585  set myres
3586} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
3587
3588do_test 1.14.7.4 {
3589  set myres {}
3590  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3591    lappend myres [format %.2f [set r]]
3592  }
3593  set myres
3594} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
3595
3596do_test 1.14.7.5 {
3597  set myres {}
3598  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3599    lappend myres [format %.2f [set r]]
3600  }
3601  set myres
3602} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
3603
3604do_test 1.14.7.6 {
3605  set myres {}
3606  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] {
3607    lappend myres [format %.2f [set r]]
3608  }
3609  set myres
3610} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
3611
3612do_test 1.14.8.1 {
3613  set myres {}
3614  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3615    lappend myres [format %.2f [set r]]
3616  }
3617  set myres
3618} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
3619
3620do_test 1.14.8.2 {
3621  set myres {}
3622  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3623    lappend myres [format %.2f [set r]]
3624  }
3625  set myres
3626} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
3627
3628do_test 1.14.8.3 {
3629  set myres {}
3630  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3631    lappend myres [format %.2f [set r]]
3632  }
3633  set myres
3634} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
3635
3636do_test 1.14.8.4 {
3637  set myres {}
3638  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3639    lappend myres [format %.2f [set r]]
3640  }
3641  set myres
3642} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
3643
3644do_test 1.14.8.5 {
3645  set myres {}
3646  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3647    lappend myres [format %.2f [set r]]
3648  }
3649  set myres
3650} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3651
3652do_test 1.14.8.6 {
3653  set myres {}
3654  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3655    lappend myres [format %.2f [set r]]
3656  }
3657  set myres
3658} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3659
3660do_test 1.14.8.1 {
3661  set myres {}
3662  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3663    lappend myres [format %.2f [set r]]
3664  }
3665  set myres
3666} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
3667
3668do_test 1.14.8.2 {
3669  set myres {}
3670  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3671    lappend myres [format %.2f [set r]]
3672  }
3673  set myres
3674} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
3675
3676do_test 1.14.8.3 {
3677  set myres {}
3678  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3679    lappend myres [format %.2f [set r]]
3680  }
3681  set myres
3682} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
3683
3684do_test 1.14.8.4 {
3685  set myres {}
3686  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3687    lappend myres [format %.2f [set r]]
3688  }
3689  set myres
3690} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
3691
3692do_test 1.14.8.5 {
3693  set myres {}
3694  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
3695    lappend myres [format %.2f [set r]]
3696  }
3697  set myres
3698} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
3699
3700do_test 1.14.8.6 {
3701  set myres {}
3702  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] {
3703    lappend myres [format %.2f [set r]]
3704  }
3705  set myres
3706} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3707
3708do_execsql_test 1.14.9.1 {
3709  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3710} {207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207}
3711
3712do_execsql_test 1.14.9.2 {
3713  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3714} {223   223   223   223   223   223   223   223   223   223   223   223   223   223   223   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   232   232   232   232   232   232   232   232   232   232   232   232   232   232   232   232   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
3715
3716do_execsql_test 1.14.9.3 {
3717  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3718} {276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276}
3719
3720do_execsql_test 1.14.9.4 {
3721  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3722} {240   240   240   240   240   240   240   240   240   240   240   240   240   240   240   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   198   198   198   198   198   198   198   198   198   198   198   198   198   198   198   198   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276}
3723
3724do_execsql_test 1.14.9.5 {
3725  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3726} {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
3727
3728do_execsql_test 1.14.9.6 {
3729  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
3730} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
3731
3732do_execsql_test 1.14.10.1 {
3733  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
3734} {0   81   86   81   46   98   97   23   41   72   29   13   28   35   16   47   47   9   24   26   98   58   8   24   30   91   58   2   56   29   73   2   42   46   62   62   73   40   16   85   33   37   81   25   9   87   78   87   61   28   59   77   90   74   9   27   41   22   39   67   72   54   85   74   90   7   61   90   62   4   93   72   96   94   29   23   95   74   93   30   23   29   3   1   41   80   65   33   2   98   86   89   25   76   65   40   38   15   13   96   74   97   81   40   16   99   76   96   32   80   86   59   2   99   84   84   39   65   27   76   78   84   16   2   96   59   16   41   28   13   89   22   4   42   91   41   33   87   55   81   29   36   28   6   47   97   97   85   33   41   93   15   85   89   98   98   43   23   73   4   56   29   89   46   65   38   59   68   47   9   93   9   23   39   16   93   98   74   65   75   15   56   93   12   2   81   2   23   97   47   91   15   93   35   16   63   8   53   91   33}
3735
3736do_execsql_test 1.14.9.2 {
3737  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
3738} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   90   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   81   21   21   {}   {}   {}   {}   21   {}   {}   {}   21   12   {}   72   {}   {}   {}   12   {}   72   {}   12   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   23   {}   {}   {}   {}   {}   73   {}   {}   {}   {}   {}   73   {}   23   {}   {}   {}   {}   {}   {}   {}   {}   74   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   {}   {}   15   55   {}   {}   {}   {}   {}   55   {}   {}   {}   {}   16   {}   26   26   {}   {}   {}   {}   26   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   27   47   {}   {}   {}   98   {}   {}   {}   {}   {}   98   {}   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   29   {}   {}   {}   {}   {}   9   {}   29   29   {}   {}   {}}
3739
3740do_execsql_test 1.14.9.3 {
3741  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3742} {0   1   1   1   1   1   2   2   2   2   3   3   3   3   4   4   4   5   5   5   6   7   7   7   7   7   7   7   8   8   8   8   8   8   8   9   9   10   11   11   11   11   12   12   12   12   12   13   13   13   13   13   14   15   15   15   15   15   15   15   15   16   16   16   16   16   16   16   16   16   16   17   17   19   19   19   19   20   20   21   21   21   21   21   22   22   22   22   23   23   23   23   23   25   25   26   26   26   26   26   27   27   28   29   29   29   29   30   30   30   30   30   30   30   30   31   31   31   31   31   32   32   33   33   33   33   33   33   33   33   34   34   34   34   35   35   35   36   36   36   36   36   36   36   36   36   36   36   36   37   37   37   37   38   38   38   39   39   39   39   39   40   40   40   40   41   41   41   41   41   41   42   43   43   43   43   43   43   44   44   44   44   44   46   46   46   46   47   47   47   47   47   47   47   47   47   47   49   49   49}
3743
3744do_execsql_test 1.14.9.4 {
3745  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3746} {0   80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   1   51   51   91   91   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   2   2   62   62   62   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   13   43   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   35   85   85   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   66   66   66   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   37   37   87   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   58   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   39   39   39   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3747
3748do_execsql_test 1.14.9.5 {
3749  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
3750} {0   74   32   31   84   91   74   3   93   84   74   31   12   90   31   22   74   64   43   64   64   90   74   22   43   90   1   30   62   22   31   31   30   74   64   64   1   40   33   50   11   81   42   40   13   50   81   40   13   13   50   33   52   24   41   81   34   41   34   2   30   2   81   82   53   33   10   33   33   81   34   41   10   81   30   81   4   3   3   23   94   3   61   80   84   94   3   91   91   72   3   63   30   91   94   94   72   91   73   91   84   84   33   41   1   33   84   73   73   91   20   41   84   33   33   84   33   41   84   21   44   22   90   22   81   81   74   93   93   93   81   21   83   44   44   21   21   21   13   21   21   34   11   34   73   74   2   60   2   34   2   34   74   60   23   2   2   2   11   91   60   62   73   74   70   51   65   74   93   65   70   34   70   93   93   93   62   35   44   43   12   35   41   43   44   44   41   80   54   72   43   41   43   91   12   80   80   35   33   12}
3751
3752do_execsql_test 1.14.9.6 {
3753  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
3754} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3755
3756do_execsql_test 1.15.2.1 {
3757  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3758} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   95   95   84   84   84   84   84   84   84   84   83   83   83   83   83   83   83   83   83}
3759
3760do_execsql_test 1.15.2.2 {
3761  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3762} {0   0   0   0   0   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7}
3763
3764do_execsql_test 1.15.3.1 {
3765  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3766} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
3767
3768do_execsql_test 1.15.3.2 {
3769  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3770} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
3771
3772do_execsql_test 1.15.4.1 {
3773  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3774} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
3775
3776do_execsql_test 1.15.4.2 {
3777  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3778} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
3779
3780do_execsql_test 1.15.4.3 {
3781  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3782} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
3783
3784do_execsql_test 1.15.4.4 {
3785  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3786} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
3787
3788do_execsql_test 1.15.4.5 {
3789  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3790} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
3791
3792do_execsql_test 1.15.4.6 {
3793  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3794} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
3795
3796do_execsql_test 1.15.5.1 {
3797  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3798} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
3799
3800do_execsql_test 1.15.5.2 {
3801  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3802} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
3803
3804do_execsql_test 1.15.5.3 {
3805  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3806} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
3807
3808do_execsql_test 1.15.5.4 {
3809  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3810} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
3811
3812do_execsql_test 1.15.5.5 {
3813  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3814} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
3815
3816do_execsql_test 1.15.5.6 {
3817  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3818} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
3819
3820do_execsql_test 1.15.6.1 {
3821  SELECT
3822      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ),
3823      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ),
3824      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING )
3825    FROM t2
3826} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
3827
3828do_test 1.15.7.1 {
3829  set myres {}
3830  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3831    lappend myres [format %.2f [set r]]
3832  }
3833  set myres
3834} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
3835
3836do_test 1.15.7.2 {
3837  set myres {}
3838  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3839    lappend myres [format %.2f [set r]]
3840  }
3841  set myres
3842} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
3843
3844do_test 1.15.7.3 {
3845  set myres {}
3846  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3847    lappend myres [format %.2f [set r]]
3848  }
3849  set myres
3850} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
3851
3852do_test 1.15.7.4 {
3853  set myres {}
3854  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3855    lappend myres [format %.2f [set r]]
3856  }
3857  set myres
3858} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
3859
3860do_test 1.15.7.5 {
3861  set myres {}
3862  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3863    lappend myres [format %.2f [set r]]
3864  }
3865  set myres
3866} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
3867
3868do_test 1.15.7.6 {
3869  set myres {}
3870  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2}] {
3871    lappend myres [format %.2f [set r]]
3872  }
3873  set myres
3874} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
3875
3876do_test 1.15.8.1 {
3877  set myres {}
3878  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3879    lappend myres [format %.2f [set r]]
3880  }
3881  set myres
3882} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
3883
3884do_test 1.15.8.2 {
3885  set myres {}
3886  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3887    lappend myres [format %.2f [set r]]
3888  }
3889  set myres
3890} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
3891
3892do_test 1.15.8.3 {
3893  set myres {}
3894  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3895    lappend myres [format %.2f [set r]]
3896  }
3897  set myres
3898} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
3899
3900do_test 1.15.8.4 {
3901  set myres {}
3902  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3903    lappend myres [format %.2f [set r]]
3904  }
3905  set myres
3906} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
3907
3908do_test 1.15.8.5 {
3909  set myres {}
3910  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3911    lappend myres [format %.2f [set r]]
3912  }
3913  set myres
3914} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3915
3916do_test 1.15.8.6 {
3917  set myres {}
3918  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3919    lappend myres [format %.2f [set r]]
3920  }
3921  set myres
3922} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3923
3924do_test 1.15.8.1 {
3925  set myres {}
3926  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3927    lappend myres [format %.2f [set r]]
3928  }
3929  set myres
3930} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
3931
3932do_test 1.15.8.2 {
3933  set myres {}
3934  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3935    lappend myres [format %.2f [set r]]
3936  }
3937  set myres
3938} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
3939
3940do_test 1.15.8.3 {
3941  set myres {}
3942  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3943    lappend myres [format %.2f [set r]]
3944  }
3945  set myres
3946} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
3947
3948do_test 1.15.8.4 {
3949  set myres {}
3950  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3951    lappend myres [format %.2f [set r]]
3952  }
3953  set myres
3954} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
3955
3956do_test 1.15.8.5 {
3957  set myres {}
3958  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
3959    lappend myres [format %.2f [set r]]
3960  }
3961  set myres
3962} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
3963
3964do_test 1.15.8.6 {
3965  set myres {}
3966  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2}] {
3967    lappend myres [format %.2f [set r]]
3968  }
3969  set myres
3970} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
3971
3972do_execsql_test 1.15.9.1 {
3973  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3974} {207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207}
3975
3976do_execsql_test 1.15.9.2 {
3977  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3978} {223   223   223   223   223   223   223   223   223   223   223   223   223   223   223   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   232   232   232   232   232   232   232   232   232   232   232   232   232   232   232   232   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
3979
3980do_execsql_test 1.15.9.3 {
3981  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3982} {276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276}
3983
3984do_execsql_test 1.15.9.4 {
3985  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3986} {240   240   240   240   240   240   240   240   240   240   240   240   240   240   240   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   198   198   198   198   198   198   198   198   198   198   198   198   198   198   198   198   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276}
3987
3988do_execsql_test 1.15.9.5 {
3989  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
3990} {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
3991
3992do_execsql_test 1.15.9.6 {
3993  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2
3994} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
3995
3996do_execsql_test 1.15.10.1 {
3997  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2
3998} {0   81   86   81   46   1   67   93   26   95   80   65   56   85   30   12   81   35   89   97   31   31   85   40   96   4   73   84   9   91   73   12   5   56   24   85   49   96   75   53   61   8   8   1   55   34   43   59   80   35   15   78   35   56   70   76   59   51   75   63   26   53   5   89   15   21   5   73   33   29   74   66   12   26   58   4   12   31   35   9   87   73   55   59   53   62   73   23   62   33   90   13   90   9   10   66   5   58   44   38   58   22   33   37   2   73   36   31   72   30   47   73   15   96   70   59   90   {}   7   21   83   {}   47   90   55   36   66   {}   50   {}   84   30   {}   {}   34   77   74   {}   58   {}   13   {}   82   93   69   14   62   44   {}   {}   30   {}   83   93   {}   {}   {}   84   {}   {}   {}   {}   14   30   82   34   34   3   {}   {}   {}   {}   {}   84   {}   {}   {}   99   {}   {}   {}   {}   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
3999
4000do_execsql_test 1.15.9.2 {
4001  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2
4002} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   61   {}   {}   {}   81   {}   91   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   72   {}   {}   {}   22   {}   82   {}   12   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   43   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   33   {}   {}   {}   {}   {}   {}   {}   {}   4   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   75   {}   {}   {}   {}   {}   {}   15   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   16   {}   26   36   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   {}   {}   {}   {}   {}   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   98   {}   {}   {}   {}   {}   58   {}   38   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   59   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4003
4004do_execsql_test 1.15.9.3 {
4005  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
4006} {0   1   1   1   1   2   2   3   4   6   7   8   8   8   9   9   10   11   12   12   13   14   15   15   16   16   17   19   21   22   22   23   23   24   25   26   27   29   29   30   30   31   32   33   33   33   34   34   34   35   36   36   36   37   38   38   39   39   40   41   41   43   44   44   46   46   47   47   47   49   50   52   53   55   55   56   56   57   58   58   58   59   59   59   61   62   62   63   65   65   66   68   69   72   72   73   73   74   74   74   75   76   77   78   80   81   81   82   83   84   84   85   85   85   86   87   88   89   89   90   90   91   91   91   93   93   95   95   95   96   97   98   99   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4007
4008do_execsql_test 1.15.9.4 {
4009  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
4010} {0   80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   1   51   51   91   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   2   2   62   62   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   13   43   43   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   35   85   85   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   66   66   66   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   37   37   87   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   58   58   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   39   39   39   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4011
4012do_execsql_test 1.15.9.5 {
4013  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
4014} {0   74   32   31   84   1   14   53   3   84   44   2   93   91   32   52   34   25   33   95   65   61   35   3   74   81   2   91   33   13   23   93   12   5   46   6   82   91   44   2   73   43   84   22   95   82   63   12   75   15   93   35   85   36   33   94   77   83   7   65   43   85   64   95   46   96   33   26   36   65   17   74   74   55   33   25   47   7   47   56   7   87   55   4   58   28   47   15   95   56   7   87   55   46   58   58   26   56   17   16   99   29   7   75   16   38   99   58   98   36   15   6   {}   8   89   9   9   56   {}   97   {}   78   16   28   26   36   {}   59   39   99   27   78   {}   {}   {}   37   27   98   {}   88   8   {}   28   {}   {}   {}   49   37   29   {}   59   {}   {}   47   {}   69   39   59   99   8   78   9   {}   {}   58   49   {}   {}   {}   {}   58   {}   38   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   59   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4015
4016do_execsql_test 1.15.9.6 {
4017  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING) FROM t2
4018} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4019
4020do_execsql_test 1.16.2.1 {
4021  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4022} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   95   95   84   84   84   84   84   84   84   84   83   83   83   83   83   83   83   83   83   82   82   17   7}
4023
4024do_execsql_test 1.16.2.2 {
4025  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4026} {0   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7}
4027
4028do_execsql_test 1.16.3.1 {
4029  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4030} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
4031
4032do_execsql_test 1.16.3.2 {
4033  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4034} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
4035
4036do_execsql_test 1.16.4.1 {
4037  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4038} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
4039
4040do_execsql_test 1.16.4.2 {
4041  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4042} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
4043
4044do_execsql_test 1.16.4.3 {
4045  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4046} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
4047
4048do_execsql_test 1.16.4.4 {
4049  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4050} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
4051
4052do_execsql_test 1.16.4.5 {
4053  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4054} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
4055
4056do_execsql_test 1.16.4.6 {
4057  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4058} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
4059
4060do_execsql_test 1.16.5.1 {
4061  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4062} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
4063
4064do_execsql_test 1.16.5.2 {
4065  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4066} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
4067
4068do_execsql_test 1.16.5.3 {
4069  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4070} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
4071
4072do_execsql_test 1.16.5.4 {
4073  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4074} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
4075
4076do_execsql_test 1.16.5.5 {
4077  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4078} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
4079
4080do_execsql_test 1.16.5.6 {
4081  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4082} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
4083
4084do_execsql_test 1.16.6.1 {
4085  SELECT
4086      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ),
4087      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ),
4088      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING )
4089    FROM t2
4090} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
4091
4092do_test 1.16.7.1 {
4093  set myres {}
4094  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4095    lappend myres [format %.2f [set r]]
4096  }
4097  set myres
4098} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
4099
4100do_test 1.16.7.2 {
4101  set myres {}
4102  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4103    lappend myres [format %.2f [set r]]
4104  }
4105  set myres
4106} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
4107
4108do_test 1.16.7.3 {
4109  set myres {}
4110  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4111    lappend myres [format %.2f [set r]]
4112  }
4113  set myres
4114} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
4115
4116do_test 1.16.7.4 {
4117  set myres {}
4118  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4119    lappend myres [format %.2f [set r]]
4120  }
4121  set myres
4122} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
4123
4124do_test 1.16.7.5 {
4125  set myres {}
4126  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4127    lappend myres [format %.2f [set r]]
4128  }
4129  set myres
4130} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
4131
4132do_test 1.16.7.6 {
4133  set myres {}
4134  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2}] {
4135    lappend myres [format %.2f [set r]]
4136  }
4137  set myres
4138} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
4139
4140do_test 1.16.8.1 {
4141  set myres {}
4142  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4143    lappend myres [format %.2f [set r]]
4144  }
4145  set myres
4146} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
4147
4148do_test 1.16.8.2 {
4149  set myres {}
4150  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4151    lappend myres [format %.2f [set r]]
4152  }
4153  set myres
4154} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
4155
4156do_test 1.16.8.3 {
4157  set myres {}
4158  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4159    lappend myres [format %.2f [set r]]
4160  }
4161  set myres
4162} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
4163
4164do_test 1.16.8.4 {
4165  set myres {}
4166  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4167    lappend myres [format %.2f [set r]]
4168  }
4169  set myres
4170} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
4171
4172do_test 1.16.8.5 {
4173  set myres {}
4174  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4175    lappend myres [format %.2f [set r]]
4176  }
4177  set myres
4178} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
4179
4180do_test 1.16.8.6 {
4181  set myres {}
4182  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4183    lappend myres [format %.2f [set r]]
4184  }
4185  set myres
4186} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
4187
4188do_test 1.16.8.1 {
4189  set myres {}
4190  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4191    lappend myres [format %.2f [set r]]
4192  }
4193  set myres
4194} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
4195
4196do_test 1.16.8.2 {
4197  set myres {}
4198  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4199    lappend myres [format %.2f [set r]]
4200  }
4201  set myres
4202} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
4203
4204do_test 1.16.8.3 {
4205  set myres {}
4206  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4207    lappend myres [format %.2f [set r]]
4208  }
4209  set myres
4210} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
4211
4212do_test 1.16.8.4 {
4213  set myres {}
4214  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4215    lappend myres [format %.2f [set r]]
4216  }
4217  set myres
4218} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
4219
4220do_test 1.16.8.5 {
4221  set myres {}
4222  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
4223    lappend myres [format %.2f [set r]]
4224  }
4225  set myres
4226} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
4227
4228do_test 1.16.8.6 {
4229  set myres {}
4230  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2}] {
4231    lappend myres [format %.2f [set r]]
4232  }
4233  set myres
4234} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
4235
4236do_execsql_test 1.16.9.1 {
4237  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4238} {207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207}
4239
4240do_execsql_test 1.16.9.2 {
4241  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4242} {223   223   223   223   223   223   223   223   223   223   223   223   223   223   223   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   232   232   232   232   232   232   232   232   232   232   232   232   232   232   232   232   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
4243
4244do_execsql_test 1.16.9.3 {
4245  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4246} {276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276}
4247
4248do_execsql_test 1.16.9.4 {
4249  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4250} {240   240   240   240   240   240   240   240   240   240   240   240   240   240   240   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   280   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   198   198   198   198   198   198   198   198   198   198   198   198   198   198   198   198   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276}
4251
4252do_execsql_test 1.16.9.5 {
4253  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4254} {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229}
4255
4256do_execsql_test 1.16.9.6 {
4257  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
4258} {1   76   78   33   11   108   52   83   79   65   26   70   103   80   36   116   51   52   128   117   71   63   84   109   78   147   88   121   106   124   85   107   171   150   80   171   120   109   158   87   168   173   162   156   195   198   177   124   121   134   141   210   157   132   161   218   226   191   179   138   214   212   172   173   229   240   187   210   227   228   223   225   179   182   231   207   209   212   239   234   213   234   269   196   271   235   250   223   232   229   280   44   28   105   41   99   92   72   55   109   120   119   50   124   96   59   124   110   57   130   103   74   87   48   105   136   131   133   92   109   57   146   113   74   150   87   110   65   110   145   161   156   114   111   136   147   173   124   132   101   154   167   190   161   110   102   123   169   140   111   180   119   160   197   152   146   147   132   213   193   200   136   175   188   187   208   211   144   223   196   170   202   163   184   195   200   163   191   252   235   243   172   187   202   179   261   263   206   189   276   181   274   249   221   210   229   279   224   216   207}
4259
4260do_execsql_test 1.16.10.1 {
4261  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
4262} {0   4   61   42   8   35   77   7   81   96   9   11   89   32   53   91   30   51   56   54   73   22   59   75   74   78   8   16   65   15   8   31   87   90   12   32   96   74   76   37   85   90   15   35   2   60   36   75   9   51   47   63   51   90   26   42   26   8   76   80   90   37   87   56   79   5   87   8   2   39   73   64   36   90   72   78   36   73   51   33   20   41   2   26   37   33   8   14   33   81   55   1   9   12   39   64   87   72   34   82   21   34   99   62   74   41   69   22   75   27   58   8   79   77   26   26   55   {}   29   30   7   {}   66   55   2   34   64   {}   33   {}   44   84   {}   {}   95   85   19   {}   83   {}   91   {}   {}   9   50   91   33   34   {}   {}   84   {}   7   9   {}   {}   {}   44   {}   {}   {}   {}   91   84   {}   95   95   52   {}   {}   {}   {}   {}   21   {}   {}   {}   58   {}   {}   {}   {}   {}   {}   {}   83   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4263
4264do_execsql_test 1.16.9.2 {
4265  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
4266} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   81   {}   {}   {}   21   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   12   {}   62   {}   {}   {}   12   {}   {}   {}   72   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   53   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   95   {}   {}   {}   {}   {}   {}   85   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   56   {}   36   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   57   {}   {}   {}   {}   {}   7   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   8   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   9   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4267
4268do_execsql_test 1.16.9.3 {
4269  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4270} {0   1   2   2   3   3   5   6   7   8   8   9   9   10   11   12   12   13   13   14   15   16   16   17   19   20   21   22   23   23   24   25   26   26   27   28   29   30   31   31   33   33   33   33   34   34   35   36   36   36   37   37   38   39   39   40   41   41   42   43   44   46   47   47   47   47   49   51   52   53   54   55   56   56   57   58   58   58   59   59   59   61   61   62   63   65   65   65   67   69   70   72   72   73   74   74   74   74   75   76   77   78   80   81   81   83   84   84   84   85   85   87   87   88   89   89   90   90   90   91   91   91   93   93   95   95   96   96   97   98   99   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4271
4272do_execsql_test 1.16.9.4 {
4273  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4274} {0   80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   1   11   61   81   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   12   12   72   82   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   13   23   63   73   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   34   74   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   35   85   85   95   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   26   76   86   96   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   37   47   47   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   58   58   68   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   39   49   59   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4275
4276do_execsql_test 1.16.9.5 {
4277  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
4278} {0   64   42   81   94   1   44   73   74   44   85   22   33   41   72   93   34   65   54   5   15   81   15   63   84   21   2   62   54   93   43   33   2   75   16   86   23   12   85   62   13   53   94   12   75   23   73   72   96   46   33   55   25   26   74   34   87   84   87   55   53   25   84   75   56   66   54   36   97   55   78   84   84   95   74   65   17   87   77   96   8   47   95   34   89   98   7   46   6   96   8   47   95   56   89   59   36   36   78   96   89   29   37   95   56   39   {}   8   58   67   85   86   {}   58   49   {}   29   76   {}   77   {}   78   56   98   36   97   {}   59   89   89   47   78   {}   {}   {}   38   68   58   {}   58   38   {}   98   {}   {}   {}   19   57   9   {}   9   {}   {}   7   {}   {}   {}   39   89   38   78   39   {}   {}   8   19   {}   {}   {}   {}   89   {}   39   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   9   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4279
4280do_execsql_test 1.16.9.6 {
4281  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING) FROM t2
4282} {0   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4283
4284do_execsql_test 1.17.2.1 {
4285  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4286} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   95   95   84   84   84   84   84   84   84   84   83   83   83   83   83   83   83   83   83   82   82   17   7   {}   {}   {}   {}}
4287
4288do_execsql_test 1.17.2.2 {
4289  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4290} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   {}   {}   {}   {}}
4291
4292do_execsql_test 1.17.3.1 {
4293  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4294} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
4295
4296do_execsql_test 1.17.3.2 {
4297  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4298} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
4299
4300do_execsql_test 1.17.4.1 {
4301  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4302} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
4303
4304do_execsql_test 1.17.4.2 {
4305  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4306} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
4307
4308do_execsql_test 1.17.4.3 {
4309  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4310} {1   2   2   3   3   3   4   4   5   6   7   8   8   8   9   9   9   10   10   10   11   12   12   13   13   13   14   14   15   16   16   16   17   17   17   18   19   20   21   21   22   22   23   23   23   24   25   26   26   26   27   27   28   29   29   29   30   30   30   31   31   32   33   33   33   33   33   34   34   34   34   35   35   36   36   36   36   37   37   38   38   39   39   39   40   41   41   41   42   43   43   44   44   45   45   46   46   46   46   47   48   49   50   51   52   53   53   54   54   54   55   56   56   56   56   57   57   57   57   58   59   59   60   60   61   62   63   63   63   64   65   66   67   68   69   69   69   70   70   70   71   71   71   71   71   72   72   72   73   74   74   75   75   76   77   77   78   78   78   79   80   81   81   81   81   82   82   82   83   84   84   85   86   86   86   87   87   87   88   88   88   88   88   89   89   89   90   91   91   91   92   92   92   93   93   94   94   95   95   95}
4311
4312do_execsql_test 1.17.4.4 {
4313  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4314} {1   2   3   4   4   4   5   6   7   8   9   9   10   10   10   1   1   2   2   3   3   4   4   5   5   5   6   7   7   8   8   8   9   9   9   9   9   1   1   1   2   2   2   3   3   4   5   6   7   7   8   8   8   9   1   1   2   2   3   3   3   4   4   4   4   4   5   5   6   7   8   8   8   9   10   10   10   1   2   3   4   4   4   4   5   5   6   7   8   8   8   8   8   9   9   9   9   10   1   2   2   2   3   4   4   5   5   6   6   6   7   7   7   8   8   8   9   9   9   1   2   2   2   3   3   3   4   4   4   4   5   5   6   6   6   7   8   9   10   10   10   1   1   1   2   3   3   4   4   5   5   5   5   6   7   8   8   9   9   10   10   1   1   1   2   3   3   4   4   4   4   5   6   6   7   8   8   1   1   1   2   3   3   3   4   4   4   5   6   6   6   6   7   8   9   9   9   10   10   10}
4315
4316do_execsql_test 1.17.4.5 {
4317  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4318} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   6   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   7   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   8   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   9   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10   10}
4319
4320do_execsql_test 1.17.4.6 {
4321  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4322} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   2   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   3   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   4   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5   5}
4323
4324do_execsql_test 1.17.5.1 {
4325  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4326} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200}
4327
4328do_execsql_test 1.17.5.2 {
4329  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4330} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23}
4331
4332do_execsql_test 1.17.5.3 {
4333  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4334} {1   2   2   4   4   4   7   7   9   10   11   12   12   12   15   15   15   18   18   18   21   22   22   24   24   24   27   27   29   30   30   30   33   33   33   36   37   38   39   39   41   41   43   43   43   46   47   48   48   48   51   51   53   54   54   54   57   57   57   60   60   62   63   63   63   63   63   68   68   68   68   72   72   74   74   74   74   78   78   80   80   82   82   82   85   86   86   86   89   90   90   92   92   94   94   96   96   96   96   100   101   102   103   104   105   106   106   108   108   108   111   112   112   112   112   116   116   116   116   120   121   121   123   123   125   126   127   127   127   130   131   132   133   134   135   135   135   138   138   138   141   141   141   141   141   146   146   146   149   150   150   152   152   154   155   155   157   157   157   160   161   162   162   162   162   166   166   166   169   170   170   172   173   173   173   176   176   176   179   179   179   179   179   184   184   184   187   188   188   188   191   191   191   194   194   196   196   198   198   198}
4335
4336do_execsql_test 1.17.5.4 {
4337  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4338} {1   2   3   4   4   4   7   8   9   10   11   11   13   13   13   1   1   3   3   5   5   7   7   9   9   9   12   13   13   15   15   15   18   18   18   18   18   1   1   1   4   4   4   7   7   9   10   11   12   12   14   14   14   17   1   1   3   3   5   5   5   8   8   8   8   8   13   13   15   16   17   17   17   20   21   21   21   1   2   3   4   4   4   4   8   8   10   11   12   12   12   12   12   17   17   17   17   21   1   2   2   2   5   6   6   8   8   10   10   10   13   13   13   16   16   16   19   19   19   1   2   2   2   5   5   5   8   8   8   8   12   12   14   14   14   17   18   19   20   20   20   1   1   1   4   5   5   7   7   9   9   9   9   13   14   15   15   17   17   19   19   1   1   1   4   5   5   7   7   7   7   11   12   12   14   15   15   1   1   1   4   5   5   5   8   8   8   11   12   12   12   12   16   17   18   18   18   21   21   21}
4339
4340do_execsql_test 1.17.5.5 {
4341  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4342} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   38   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   55   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   78   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   120   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   142   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   162   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178   178}
4343
4344do_execsql_test 1.17.5.6 {
4345  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4346} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   16   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   33   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   54   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   76   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   23   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   46   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   67   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87   87}
4347
4348do_execsql_test 1.17.6.1 {
4349  SELECT
4350      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ),
4351      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ),
4352      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING )
4353    FROM t2
4354} {1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 16 2   17 16 2   18 16 2   19 16 2   20 16 2   21 16 2   22 16 2   23 16 2   24 16 2   25 16 2   26 16 2   27 16 2   28 16 2   29 16 2   30 16 2   31 16 2   32 16 2   33 33 3   34 33 3   35 33 3   36 33 3   37 33 3   38 33 3   39 33 3   40 33 3   41 33 3   42 33 3   43 33 3   44 33 3   45 33 3   46 33 3   47 33 3   48 33 3   49 33 3   50 33 3   51 33 3   52 33 3   53 33 3   54 54 4   55 54 4   56 54 4   57 54 4   58 54 4   59 54 4   60 54 4   61 54 4   62 54 4   63 54 4   64 54 4   65 54 4   66 54 4   67 54 4   68 54 4   69 54 4   70 54 4   71 54 4   72 54 4   73 54 4   74 54 4   75 54 4   76 76 5   77 76 5   78 76 5   79 76 5   80 76 5   81 76 5   82 76 5   83 76 5   84 76 5   85 76 5   86 76 5   87 76 5   88 76 5   89 76 5   90 76 5   91 76 5   1 1 1   2 1 1   3 1 1   4 1 1   5 1 1   6 1 1   7 1 1   8 1 1   9 1 1   10 1 1   11 1 1   12 1 1   13 1 1   14 1 1   15 1 1   16 1 1   17 1 1   18 1 1   19 1 1   20 1 1   21 1 1   22 1 1   23 23 2   24 23 2   25 23 2   26 23 2   27 23 2   28 23 2   29 23 2   30 23 2   31 23 2   32 23 2   33 23 2   34 23 2   35 23 2   36 23 2   37 23 2   38 23 2   39 23 2   40 23 2   41 23 2   42 23 2   43 23 2   44 23 2   45 23 2   46 46 3   47 46 3   48 46 3   49 46 3   50 46 3   51 46 3   52 46 3   53 46 3   54 46 3   55 46 3   56 46 3   57 46 3   58 46 3   59 46 3   60 46 3   61 46 3   62 46 3   63 46 3   64 46 3   65 46 3   66 46 3   67 67 4   68 67 4   69 67 4   70 67 4   71 67 4   72 67 4   73 67 4   74 67 4   75 67 4   76 67 4   77 67 4   78 67 4   79 67 4   80 67 4   81 67 4   82 67 4   83 67 4   84 67 4   85 67 4   86 67 4   87 87 5   88 87 5   89 87 5   90 87 5   91 87 5   92 87 5   93 87 5   94 87 5   95 87 5   96 87 5   97 87 5   98 87 5   99 87 5   100 87 5   101 87 5   102 87 5   103 87 5   104 87 5   105 87 5   106 87 5   107 87 5   108 87 5   109 87 5}
4355
4356do_test 1.17.7.1 {
4357  set myres {}
4358  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4359    lappend myres [format %.2f [set r]]
4360  }
4361  set myres
4362} {0.00 0.01 0.01 0.02 0.02 0.03 0.03 0.04 0.04 0.05 0.05 0.06 0.06 0.07 0.07 0.08 0.08 0.09 0.09 0.10 0.10 0.11 0.11 0.12 0.12 0.13 0.13 0.14 0.14 0.15 0.15 0.16 0.16 0.17 0.17 0.18 0.18 0.19 0.19 0.20 0.20 0.21 0.21 0.22 0.22 0.23 0.23 0.24 0.24 0.25 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
4363
4364do_test 1.17.7.2 {
4365  set myres {}
4366  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4367    lappend myres [format %.2f [set r]]
4368  }
4369  set myres
4370} {0.00 0.07 0.14 0.21 0.29 0.36 0.43 0.50 0.57 0.64 0.71 0.79 0.86 0.93 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.00 0.05 0.11 0.16 0.21 0.26 0.32 0.37 0.42 0.47 0.53 0.58 0.63 0.68 0.74 0.79 0.84 0.89 0.95 1.00 0.00 0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00}
4371
4372do_test 1.17.7.3 {
4373  set myres {}
4374  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4375    lappend myres [format %.2f [set r]]
4376  }
4377  set myres
4378} {0.00 0.01 0.01 0.02 0.02 0.02 0.03 0.03 0.04 0.05 0.05 0.06 0.06 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.11 0.11 0.12 0.12 0.12 0.13 0.13 0.14 0.15 0.15 0.15 0.16 0.16 0.16 0.18 0.18 0.19 0.19 0.19 0.20 0.20 0.21 0.21 0.21 0.23 0.23 0.24 0.24 0.24 0.25 0.25 0.26 0.27 0.27 0.27 0.28 0.28 0.28 0.30 0.30 0.31 0.31 0.31 0.31 0.31 0.31 0.34 0.34 0.34 0.34 0.36 0.36 0.37 0.37 0.37 0.37 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.43 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.48 0.48 0.48 0.48 0.50 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.54 0.55 0.56 0.56 0.56 0.56 0.58 0.58 0.58 0.58 0.60 0.60 0.60 0.61 0.61 0.62 0.63 0.63 0.63 0.63 0.65 0.65 0.66 0.66 0.67 0.67 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.70 0.70 0.73 0.73 0.73 0.74 0.75 0.75 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.78 0.80 0.80 0.81 0.81 0.81 0.81 0.83 0.83 0.83 0.84 0.85 0.85 0.86 0.86 0.86 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.89 0.89 0.92 0.92 0.92 0.93 0.94 0.94 0.94 0.95 0.95 0.95 0.97 0.97 0.98 0.98 0.99 0.99 0.99}
4379
4380do_test 1.17.7.4 {
4381  set myres {}
4382  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4383    lappend myres [format %.2f [set r]]
4384  }
4385  set myres
4386} {0.00 0.07 0.14 0.21 0.21 0.21 0.43 0.50 0.57 0.64 0.71 0.71 0.86 0.86 0.86 0.00 0.00 0.10 0.10 0.19 0.19 0.29 0.29 0.38 0.38 0.38 0.52 0.57 0.57 0.67 0.67 0.67 0.81 0.81 0.81 0.81 0.81 0.00 0.00 0.00 0.19 0.19 0.19 0.38 0.38 0.50 0.56 0.62 0.69 0.69 0.81 0.81 0.81 1.00 0.00 0.00 0.09 0.09 0.18 0.18 0.18 0.32 0.32 0.32 0.32 0.32 0.55 0.55 0.64 0.68 0.73 0.73 0.73 0.86 0.91 0.91 0.91 0.00 0.05 0.10 0.15 0.15 0.15 0.15 0.35 0.35 0.45 0.50 0.55 0.55 0.55 0.55 0.55 0.80 0.80 0.80 0.80 1.00 0.00 0.05 0.05 0.05 0.20 0.25 0.25 0.35 0.35 0.45 0.45 0.45 0.60 0.60 0.60 0.75 0.75 0.75 0.90 0.90 0.90 0.00 0.05 0.05 0.05 0.19 0.19 0.19 0.33 0.33 0.33 0.33 0.52 0.52 0.62 0.62 0.62 0.76 0.81 0.86 0.90 0.90 0.90 0.00 0.00 0.00 0.16 0.21 0.21 0.32 0.32 0.42 0.42 0.42 0.42 0.63 0.68 0.74 0.74 0.84 0.84 0.95 0.95 0.00 0.00 0.00 0.20 0.27 0.27 0.40 0.40 0.40 0.40 0.67 0.73 0.73 0.87 0.93 0.93 0.00 0.00 0.00 0.14 0.18 0.18 0.18 0.32 0.32 0.32 0.45 0.50 0.50 0.50 0.50 0.68 0.73 0.77 0.77 0.77 0.91 0.91 0.91}
4387
4388do_test 1.17.7.5 {
4389  set myres {}
4390  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4391    lappend myres [format %.2f [set r]]
4392  }
4393  set myres
4394} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.60 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.71 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89}
4395
4396do_test 1.17.7.6 {
4397  set myres {}
4398  foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2}] {
4399    lappend myres [format %.2f [set r]]
4400  }
4401  set myres
4402} {0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.17 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.36 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80 0.80}
4403
4404do_test 1.17.8.1 {
4405  set myres {}
4406  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4407    lappend myres [format %.2f [set r]]
4408  }
4409  set myres
4410} {0.01 0.01 0.01 0.02 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.06 0.07 0.07 0.07 0.08 0.09 0.09 0.10 0.10 0.10 0.11 0.12 0.12 0.12 0.13 0.14 0.14 0.14 0.15 0.15 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.20 0.21 0.21 0.22 0.23 0.23 0.23 0.24 0.24 0.25 0.26 0.26 0.27 0.27 0.28 0.28 0.28 0.29 0.29 0.30 0.30 0.31 0.32 0.32 0.33 0.33 0.34 0.34 0.34 0.35 0.35 0.36 0.36 0.37 0.38 0.38 0.39 0.39 0.40 0.40 0.41 0.41 0.41 0.42 0.42 0.43 0.43 0.44 0.45 0.45 0.46 0.46 0.47 0.47 0.47 0.48 0.48 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.53 0.54 0.54 0.55 0.55 0.56 0.56 0.56 0.57 0.57 0.58 0.58 0.59 0.59 0.60 0.60 0.61 0.61 0.62 0.62 0.63 0.64 0.64 0.65 0.65 0.66 0.66 0.67 0.67 0.68 0.68 0.69 0.69 0.69 0.70 0.70 0.71 0.71 0.72 0.72 0.73 0.73 0.74 0.74 0.75 0.76 0.76 0.77 0.77 0.78 0.78 0.79 0.79 0.80 0.80 0.81 0.81 0.81 0.82 0.82 0.83 0.83 0.84 0.84 0.85 0.85 0.86 0.86 0.87 0.88 0.88 0.89 0.89 0.90 0.90 0.91 0.91 0.92 0.92 0.93 0.93 0.94 0.94 0.94 0.95 0.95 0.96 0.96 0.97 0.97 0.98 0.98 0.99 0.99 1.00}
4411
4412do_test 1.17.8.2 {
4413  set myres {}
4414  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4415    lappend myres [format %.2f [set r]]
4416  }
4417  set myres
4418} {0.07 0.13 0.20 0.27 0.33 0.40 0.47 0.53 0.60 0.67 0.73 0.80 0.87 0.93 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.06 0.12 0.18 0.24 0.29 0.35 0.41 0.47 0.53 0.59 0.65 0.71 0.76 0.82 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.10 0.14 0.19 0.24 0.29 0.33 0.38 0.43 0.48 0.52 0.57 0.62 0.67 0.71 0.76 0.81 0.86 0.90 0.95 1.00 0.05 0.09 0.14 0.18 0.23 0.27 0.32 0.36 0.41 0.45 0.50 0.55 0.59 0.64 0.68 0.73 0.77 0.82 0.86 0.91 0.95 1.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 0.06 0.12 0.19 0.25 0.31 0.38 0.44 0.50 0.56 0.62 0.69 0.75 0.81 0.88 0.94 1.00 0.04 0.09 0.13 0.17 0.22 0.26 0.30 0.35 0.39 0.43 0.48 0.52 0.57 0.61 0.65 0.70 0.74 0.78 0.83 0.87 0.91 0.96 1.00}
4419
4420do_test 1.17.8.3 {
4421  set myres {}
4422  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4423    lappend myres [format %.2f [set r]]
4424  }
4425  set myres
4426} {0.01 0.01 0.01 0.03 0.03 0.03 0.04 0.04 0.04 0.05 0.06 0.07 0.07 0.07 0.09 0.09 0.09 0.10 0.10 0.10 0.10 0.12 0.12 0.13 0.13 0.13 0.14 0.14 0.14 0.16 0.16 0.16 0.17 0.17 0.17 0.18 0.18 0.19 0.20 0.20 0.21 0.21 0.23 0.23 0.23 0.23 0.23 0.25 0.25 0.25 0.26 0.26 0.27 0.28 0.28 0.28 0.29 0.29 0.29 0.30 0.30 0.31 0.34 0.34 0.34 0.34 0.34 0.35 0.35 0.35 0.35 0.36 0.36 0.39 0.39 0.39 0.39 0.40 0.40 0.41 0.41 0.42 0.42 0.42 0.42 0.44 0.44 0.44 0.45 0.46 0.46 0.47 0.47 0.47 0.47 0.49 0.49 0.49 0.49 0.50 0.51 0.51 0.52 0.52 0.53 0.54 0.54 0.55 0.55 0.55 0.56 0.57 0.57 0.57 0.57 0.59 0.59 0.59 0.59 0.60 0.61 0.61 0.62 0.62 0.62 0.63 0.65 0.65 0.65 0.65 0.66 0.66 0.67 0.67 0.69 0.69 0.69 0.70 0.70 0.70 0.72 0.72 0.72 0.72 0.72 0.74 0.74 0.74 0.74 0.76 0.76 0.77 0.77 0.77 0.78 0.78 0.80 0.80 0.80 0.80 0.81 0.82 0.82 0.82 0.82 0.84 0.84 0.84 0.84 0.85 0.85 0.86 0.88 0.88 0.88 0.89 0.89 0.89 0.92 0.92 0.92 0.92 0.92 0.93 0.93 0.93 0.94 0.95 0.95 0.95 0.96 0.96 0.96 0.97 0.97 0.98 0.98 1.00 1.00 1.00}
4427
4428do_test 1.17.8.4 {
4429  set myres {}
4430  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4431    lappend myres [format %.2f [set r]]
4432  }
4433  set myres
4434} {0.07 0.13 0.20 0.40 0.40 0.40 0.47 0.53 0.60 0.67 0.80 0.80 1.00 1.00 1.00 0.09 0.09 0.18 0.18 0.27 0.27 0.36 0.36 0.50 0.50 0.50 0.55 0.64 0.64 0.77 0.77 0.77 1.00 1.00 1.00 1.00 1.00 0.18 0.18 0.18 0.35 0.35 0.35 0.47 0.47 0.53 0.59 0.65 0.76 0.76 0.94 0.94 0.94 1.00 0.09 0.09 0.17 0.17 0.30 0.30 0.30 0.52 0.52 0.52 0.52 0.52 0.61 0.61 0.65 0.70 0.83 0.83 0.83 0.87 1.00 1.00 1.00 0.05 0.10 0.14 0.33 0.33 0.33 0.33 0.43 0.43 0.48 0.52 0.76 0.76 0.76 0.76 0.76 0.95 0.95 0.95 0.95 1.00 0.05 0.19 0.19 0.19 0.24 0.33 0.33 0.43 0.43 0.57 0.57 0.57 0.71 0.71 0.71 0.86 0.86 0.86 1.00 1.00 1.00 0.05 0.18 0.18 0.18 0.32 0.32 0.32 0.50 0.50 0.50 0.50 0.59 0.59 0.73 0.73 0.73 0.77 0.82 0.86 1.00 1.00 1.00 0.15 0.15 0.15 0.20 0.30 0.30 0.40 0.40 0.60 0.60 0.60 0.60 0.65 0.70 0.80 0.80 0.90 0.90 1.00 1.00 0.19 0.19 0.19 0.25 0.38 0.38 0.62 0.62 0.62 0.62 0.69 0.81 0.81 0.88 1.00 1.00 0.13 0.13 0.13 0.17 0.30 0.30 0.30 0.43 0.43 0.43 0.48 0.65 0.65 0.65 0.65 0.70 0.74 0.87 0.87 0.87 1.00 1.00 1.00}
4435
4436do_test 1.17.8.5 {
4437  set myres {}
4438  foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4439    lappend myres [format %.2f [set r]]
4440  }
4441  set myres
4442} {0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.27 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.49 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.59 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.81 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 0.89 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
4443
4444do_test 1.17.8.6 {
4445  set myres {}
4446  foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4447    lappend myres [format %.2f [set r]]
4448  }
4449  set myres
4450} {0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.16 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 0.82 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.41 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.61 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 0.79 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
4451
4452do_test 1.17.8.1 {
4453  set myres {}
4454  foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4455    lappend myres [format %.2f [set r]]
4456  }
4457  set myres
4458} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 99.00 100.00 100.00}
4459
4460do_test 1.17.8.2 {
4461  set myres {}
4462  foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4463    lappend myres [format %.2f [set r]]
4464  }
4465  set myres
4466} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
4467
4468do_test 1.17.8.3 {
4469  set myres {}
4470  foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4471    lappend myres [format %.2f [set r]]
4472  }
4473  set myres
4474} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 97.00 98.00 98.00 99.00 100.00 101.00 102.00}
4475
4476do_test 1.17.8.4 {
4477  set myres {}
4478  foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4479    lappend myres [format %.2f [set r]]
4480  }
4481  set myres
4482} {1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00}
4483
4484do_test 1.17.8.5 {
4485  set myres {}
4486  foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
4487    lappend myres [format %.2f [set r]]
4488  }
4489  set myres
4490} {1.00 1.00 2.00 2.00 3.00 3.00 4.00 4.00 5.00 5.00 6.00 6.00 7.00 7.00 8.00 8.00 9.00 9.00 10.00 10.00 11.00 11.00 12.00 12.00 13.00 13.00 14.00 14.00 15.00 15.00 16.00 16.00 17.00 17.00 18.00 18.00 19.00 19.00 20.00 20.00 21.00 21.00 22.00 22.00 23.00 23.00 24.00 24.00 25.00 25.00 26.00 26.00 27.00 27.00 28.00 28.00 29.00 29.00 30.00 30.00 31.00 31.00 32.00 32.00 33.00 33.00 34.00 34.00 35.00 35.00 36.00 36.00 37.00 37.00 38.00 38.00 39.00 39.00 40.00 40.00 41.00 41.00 42.00 42.00 43.00 43.00 44.00 44.00 45.00 45.00 46.00 46.00 47.00 47.00 48.00 48.00 49.00 49.00 50.00 50.00 51.00 51.00 52.00 52.00 53.00 53.00 54.00 54.00 55.00 55.00 56.00 56.00 57.00 57.00 58.00 58.00 59.00 59.00 60.00 60.00 61.00 61.00 62.00 62.00 63.00 63.00 64.00 64.00 65.00 65.00 66.00 66.00 67.00 67.00 68.00 68.00 69.00 69.00 70.00 70.00 71.00 71.00 72.00 72.00 73.00 73.00 74.00 74.00 75.00 75.00 76.00 76.00 77.00 77.00 78.00 78.00 79.00 79.00 80.00 80.00 81.00 81.00 82.00 82.00 83.00 83.00 84.00 84.00 85.00 85.00 86.00 86.00 87.00 87.00 88.00 88.00 89.00 89.00 90.00 90.00 91.00 91.00 92.00 92.00 93.00 93.00 94.00 94.00 95.00 95.00 96.00 96.00 97.00 98.00 99.00 100.00 101.00 102.00 103.00 104.00}
4491
4492do_test 1.17.8.6 {
4493  set myres {}
4494  foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2}] {
4495    lappend myres [format %.2f [set r]]
4496  }
4497  set myres
4498} {1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00}
4499
4500do_execsql_test 1.17.9.1 {
4501  SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4502} {207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   {}   {}   {}   {}}
4503
4504do_execsql_test 1.17.9.2 {
4505  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4506} {223   223   223   223   223   223   223   223   223   223   223   {}   {}   {}   {}   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   210   {}   {}   {}   {}   280   280   280   280   280   280   280   280   280   280   280   280   280   {}   {}   {}   {}   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   279   {}   {}   {}   {}   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   {}   {}   {}   {}   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   {}   {}   {}   {}   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   212   {}   {}   {}   {}   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   207   {}   {}   {}   {}   232   232   232   232   232   232   232   232   232   232   232   232   {}   {}   {}   {}   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   {}   {}   {}   {}}
4507
4508do_execsql_test 1.17.9.3 {
4509  SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4510} {276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   {}   {}   {}   {}}
4511
4512do_execsql_test 1.17.9.4 {
4513  SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4514} {240   240   240   240   240   240   240   240   240   240   240   {}   {}   {}   {}   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   263   {}   {}   {}   {}   280   280   280   280   280   280   280   280   280   280   280   280   280   {}   {}   {}   {}   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   252   {}   {}   {}   {}   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   171   {}   {}   {}   {}   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   274   {}   {}   {}   {}   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   226   {}   {}   {}   {}   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   124   {}   {}   {}   {}   198   198   198   198   198   198   198   198   198   198   198   198   {}   {}   {}   {}   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   276   {}   {}   {}   {}}
4515
4516do_execsql_test 1.17.9.5 {
4517  SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4518} {229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   229   {}   {}   {}   {}}
4519
4520do_execsql_test 1.17.9.6 {
4521  SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2
4522} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4523
4524do_execsql_test 1.17.10.1 {
4525  SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2
4526} {23   78   85   29   84   51   93   91   68   74   65   12   4   22   37   15   53   8   16   29   8   34   3   76   73   63   90   47   98   47   90   73   20   89   91   22   77   73   42   41   32   55   79   51   74   44   81   7   65   8   43   80   8   89   90   29   36   15   42   9   9   41   20   16   11   87   20   90   84   80   41   37   34   9   75   63   34   8   8   81   95   31   74   36   41   99   90   91   99   13   2   35   33   36   38   37   20   75   17   {}   5   34   58   33   19   31   50   34   23   {}   72   90   11   85   90   36   2   {}   39   27   {}   {}   64   2   74   95   37   {}   58   {}   34   44   {}   {}   30   70   47   {}   7   {}   15   {}   {}   12   33   36   99   17   {}   {}   44   {}   {}   12   {}   {}   {}   34   {}   {}   {}   {}   36   44   {}   30   30   10   {}   {}   {}   {}   {}   30   {}   {}   {}   84   {}   {}   {}   {}   {}   {}   {}   7   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4527
4528do_execsql_test 1.17.9.2 {
4529  SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2
4530} {80   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   21   {}   {}   {}   31   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   2   {}   {}   {}   {}   {}   72   {}   {}   {}   82   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   73   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   64   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   76   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   27   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   38   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4531
4532do_execsql_test 1.17.9.3 {
4533  SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4534} {2   3   3   5   6   7   7   8   8   9   10   11   12   12   13   13   14   15   15   16   16   19   20   21   22   22   23   23   25   26   26   27   28   29   29   30   31   32   33   33   33   34   34   34   35   36   36   37   37   38   39   39   40   41   41   42   43   44   44   46   47   47   49   50   51   52   53   55   55   56   56   57   58   58   58   59   59   59   60   61   62   63   64   65   65   67   68   69   72   72   73   73   74   74   74   75   75   76   77   78   80   81   81   83   84   84   85   85   86   87   88   89   89   90   90   91   91   91   91   93   93   94   95   95   96   97   98   98   99   99   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4535
4536do_execsql_test 1.17.9.4 {
4537  SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4538} {30   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   21   31   91   91   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   22   22   32   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   33   33   83   93   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   44   84   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   65   95   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   36   96   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   47   57   67   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   78   88   98   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   59   59   69   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4539
4540do_execsql_test 1.17.9.5 {
4541  SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
4542} {80   84   22   2   34   41   85   23   24   34   25   12   13   11   72   3   85   95   4   75   85   21   65   73   44   31   62   42   4   3   73   13   2   95   56   16   43   2   25   33   83   73   34   72   96   43   13   82   16   16   13   15   65   36   74   14   7   94   47   95   73   65   35   96   36   27   4   67   77   95   78   65   44   5   74   95   78   47   47   36   58   17   5   64   29   58   8   16   86   36   58   17   5   36   29   59   67   26   78   66   49   59   38   6   96   89   {}   38   99   47   26   16   {}   8   19   {}   9   26   {}   87   {}   88   76   58   67   77   {}   9   79   49   37   88   {}   {}   {}   28   98   99   {}   59   39   {}   58   {}   {}   {}   99   27   39   {}   29   {}   {}   8   {}   {}   {}   69   49   39   88   {}   {}   {}   38   99   {}   {}   {}   {}   29   {}   89   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4543
4544do_execsql_test 1.17.9.6 {
4545  SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING) FROM t2
4546} {{}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}   {}}
4547
4548finish_test
4549