xref: /sqlite-3.40.0/test/window3.test (revision f1abe368)
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 b, cume_dist() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
183    lappend myres [format %.2f [set r]]
184  }
185  set myres
186} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
187
188do_execsql_test 1.2.2.1 {
189  SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
190} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
191
192do_execsql_test 1.2.2.2 {
193  SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
194} {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
195
196do_execsql_test 1.2.3.1 {
197  SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
198} {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}
199
200do_execsql_test 1.2.3.2 {
201  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
202} {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}
203
204do_execsql_test 1.2.4.1 {
205  SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
206} {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}
207
208do_execsql_test 1.2.4.2 {
209  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
210} {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}
211
212do_execsql_test 1.2.4.3 {
213  SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
214} {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}
215
216do_execsql_test 1.2.4.4 {
217  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
218} {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}
219
220do_execsql_test 1.2.4.5 {
221  SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
222} {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}
223
224do_execsql_test 1.2.4.6 {
225  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
226} {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}
227
228do_execsql_test 1.2.5.1 {
229  SELECT rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
230} {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}
231
232do_execsql_test 1.2.5.2 {
233  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
234} {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}
235
236do_execsql_test 1.2.5.3 {
237  SELECT rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
238} {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}
239
240do_execsql_test 1.2.5.4 {
241  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
242} {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}
243
244do_execsql_test 1.2.5.5 {
245  SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
246} {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}
247
248do_execsql_test 1.2.5.6 {
249  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
250} {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}
251
252do_execsql_test 1.2.6.1 {
253  SELECT
254      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ),
255      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ),
256      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )
257    FROM t2
258} {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}
259
260do_test 1.2.7.1 {
261  set myres {}
262  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
263    lappend myres [format %.2f [set r]]
264  }
265  set myres
266} {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}
267
268do_test 1.2.7.2 {
269  set myres {}
270  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
271    lappend myres [format %.2f [set r]]
272  }
273  set myres
274} {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}
275
276do_test 1.2.7.3 {
277  set myres {}
278  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
279    lappend myres [format %.2f [set r]]
280  }
281  set myres
282} {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}
283
284do_test 1.2.7.4 {
285  set myres {}
286  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
287    lappend myres [format %.2f [set r]]
288  }
289  set myres
290} {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}
291
292do_test 1.2.7.5 {
293  set myres {}
294  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
295    lappend myres [format %.2f [set r]]
296  }
297  set myres
298} {0.00 0.00 0.00 0.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}
299
300do_test 1.2.7.6 {
301  set myres {}
302  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}] {
303    lappend myres [format %.2f [set r]]
304  }
305  set myres
306} {0.00 0.00 0.00 0.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}
307
308do_test 1.2.8.1 {
309  set myres {}
310  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
311    lappend myres [format %.2f [set r]]
312  }
313  set myres
314} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
315
316do_execsql_test 1.3.2.1 {
317  SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
318} {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}
319
320do_execsql_test 1.3.2.2 {
321  SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
322} {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}
323
324do_execsql_test 1.3.3.1 {
325  SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
326} {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}
327
328do_execsql_test 1.3.3.2 {
329  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
330} {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}
331
332do_execsql_test 1.3.4.1 {
333  SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) 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.3.4.2 {
337  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) 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.3.4.3 {
341  SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
342} {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}
343
344do_execsql_test 1.3.4.4 {
345  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
346} {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}
347
348do_execsql_test 1.3.4.5 {
349  SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
350} {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}
351
352do_execsql_test 1.3.4.6 {
353  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
354} {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}
355
356do_execsql_test 1.3.5.1 {
357  SELECT rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
358} {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}
359
360do_execsql_test 1.3.5.2 {
361  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
362} {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}
363
364do_execsql_test 1.3.5.3 {
365  SELECT rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
366} {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}
367
368do_execsql_test 1.3.5.4 {
369  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
370} {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}
371
372do_execsql_test 1.3.5.5 {
373  SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
374} {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}
375
376do_execsql_test 1.3.5.6 {
377  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
378} {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}
379
380do_execsql_test 1.3.6.1 {
381  SELECT
382      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ),
383      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ),
384      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW )
385    FROM t2
386} {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}
387
388do_test 1.3.7.1 {
389  set myres {}
390  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
391    lappend myres [format %.2f [set r]]
392  }
393  set myres
394} {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}
395
396do_test 1.3.7.2 {
397  set myres {}
398  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
399    lappend myres [format %.2f [set r]]
400  }
401  set myres
402} {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}
403
404do_test 1.3.7.3 {
405  set myres {}
406  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
407    lappend myres [format %.2f [set r]]
408  }
409  set myres
410} {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}
411
412do_test 1.3.7.4 {
413  set myres {}
414  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
415    lappend myres [format %.2f [set r]]
416  }
417  set myres
418} {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}
419
420do_test 1.3.7.5 {
421  set myres {}
422  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
423    lappend myres [format %.2f [set r]]
424  }
425  set myres
426} {0.00 0.00 0.00 0.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}
427
428do_test 1.3.7.6 {
429  set myres {}
430  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}] {
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.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}
435
436do_test 1.3.8.1 {
437  set myres {}
438  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
439    lappend myres [format %.2f [set r]]
440  }
441  set myres
442} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
443
444do_execsql_test 1.4.2.1 {
445  SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
446} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   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}
447
448do_execsql_test 1.4.2.2 {
449  SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
450} {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}
451
452do_execsql_test 1.4.3.1 {
453  SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
454} {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}
455
456do_execsql_test 1.4.3.2 {
457  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
458} {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}
459
460do_execsql_test 1.4.4.1 {
461  SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
462} {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}
463
464do_execsql_test 1.4.4.2 {
465  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
466} {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}
467
468do_execsql_test 1.4.4.3 {
469  SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
470} {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}
471
472do_execsql_test 1.4.4.4 {
473  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
474} {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}
475
476do_execsql_test 1.4.4.5 {
477  SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
478} {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}
479
480do_execsql_test 1.4.4.6 {
481  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
482} {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}
483
484do_execsql_test 1.4.5.1 {
485  SELECT rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
486} {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}
487
488do_execsql_test 1.4.5.2 {
489  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
490} {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}
491
492do_execsql_test 1.4.5.3 {
493  SELECT rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
494} {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}
495
496do_execsql_test 1.4.5.4 {
497  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
498} {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}
499
500do_execsql_test 1.4.5.5 {
501  SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
502} {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}
503
504do_execsql_test 1.4.5.6 {
505  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
506} {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}
507
508do_execsql_test 1.4.6.1 {
509  SELECT
510      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ),
511      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ),
512      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING )
513    FROM t2
514} {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}
515
516do_test 1.4.7.1 {
517  set myres {}
518  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
519    lappend myres [format %.2f [set r]]
520  }
521  set myres
522} {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}
523
524do_test 1.4.7.2 {
525  set myres {}
526  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
527    lappend myres [format %.2f [set r]]
528  }
529  set myres
530} {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}
531
532do_test 1.4.7.3 {
533  set myres {}
534  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
535    lappend myres [format %.2f [set r]]
536  }
537  set myres
538} {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}
539
540do_test 1.4.7.4 {
541  set myres {}
542  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
543    lappend myres [format %.2f [set r]]
544  }
545  set myres
546} {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}
547
548do_test 1.4.7.5 {
549  set myres {}
550  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
551    lappend myres [format %.2f [set r]]
552  }
553  set myres
554} {0.00 0.00 0.00 0.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}
555
556do_test 1.4.7.6 {
557  set myres {}
558  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}] {
559    lappend myres [format %.2f [set r]]
560  }
561  set myres
562} {0.00 0.00 0.00 0.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}
563
564do_test 1.4.8.1 {
565  set myres {}
566  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
567    lappend myres [format %.2f [set r]]
568  }
569  set myres
570} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
571
572do_execsql_test 1.5.2.1 {
573  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
574} {{}   {}   {}   {}   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}
575
576do_execsql_test 1.5.2.2 {
577  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
578} {{}   {}   {}   {}   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
579
580do_execsql_test 1.5.3.1 {
581  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
582} {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}
583
584do_execsql_test 1.5.3.2 {
585  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
586} {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}
587
588do_execsql_test 1.5.4.1 {
589  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
590} {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}
591
592do_execsql_test 1.5.4.2 {
593  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
594} {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}
595
596do_execsql_test 1.5.4.3 {
597  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
598} {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}
599
600do_execsql_test 1.5.4.4 {
601  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
602} {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}
603
604do_execsql_test 1.5.4.5 {
605  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
606} {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}
607
608do_execsql_test 1.5.4.6 {
609  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
610} {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}
611
612do_execsql_test 1.5.5.1 {
613  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
614} {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}
615
616do_execsql_test 1.5.5.2 {
617  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
618} {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}
619
620do_execsql_test 1.5.5.3 {
621  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
622} {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}
623
624do_execsql_test 1.5.5.4 {
625  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
626} {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}
627
628do_execsql_test 1.5.5.5 {
629  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
630} {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}
631
632do_execsql_test 1.5.5.6 {
633  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
634} {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}
635
636do_execsql_test 1.5.6.1 {
637  SELECT
638      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ),
639      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ),
640      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING )
641    FROM t2
642} {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}
643
644do_test 1.5.7.1 {
645  set myres {}
646  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
647    lappend myres [format %.2f [set r]]
648  }
649  set myres
650} {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}
651
652do_test 1.5.7.2 {
653  set myres {}
654  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
655    lappend myres [format %.2f [set r]]
656  }
657  set myres
658} {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}
659
660do_test 1.5.7.3 {
661  set myres {}
662  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) 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.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}
667
668do_test 1.5.7.4 {
669  set myres {}
670  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
671    lappend myres [format %.2f [set r]]
672  }
673  set myres
674} {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}
675
676do_test 1.5.7.5 {
677  set myres {}
678  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
679    lappend myres [format %.2f [set r]]
680  }
681  set myres
682} {0.00 0.00 0.00 0.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}
683
684do_test 1.5.7.6 {
685  set myres {}
686  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}] {
687    lappend myres [format %.2f [set r]]
688  }
689  set myres
690} {0.00 0.00 0.00 0.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}
691
692do_test 1.5.8.1 {
693  set myres {}
694  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
695    lappend myres [format %.2f [set r]]
696  }
697  set myres
698} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
699
700do_execsql_test 1.6.2.1 {
701  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
702} {{}   {}   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}
703
704do_execsql_test 1.6.2.2 {
705  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
706} {{}   {}   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}
707
708do_execsql_test 1.6.3.1 {
709  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
710} {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}
711
712do_execsql_test 1.6.3.2 {
713  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
714} {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}
715
716do_execsql_test 1.6.4.1 {
717  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
718} {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}
719
720do_execsql_test 1.6.4.2 {
721  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
722} {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}
723
724do_execsql_test 1.6.4.3 {
725  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
726} {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}
727
728do_execsql_test 1.6.4.4 {
729  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
730} {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}
731
732do_execsql_test 1.6.4.5 {
733  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
734} {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}
735
736do_execsql_test 1.6.4.6 {
737  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
738} {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}
739
740do_execsql_test 1.6.5.1 {
741  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
742} {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}
743
744do_execsql_test 1.6.5.2 {
745  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
746} {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}
747
748do_execsql_test 1.6.5.3 {
749  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
750} {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}
751
752do_execsql_test 1.6.5.4 {
753  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
754} {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}
755
756do_execsql_test 1.6.5.5 {
757  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
758} {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}
759
760do_execsql_test 1.6.5.6 {
761  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2
762} {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}
763
764do_execsql_test 1.6.6.1 {
765  SELECT
766      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ),
767      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ),
768      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING )
769    FROM t2
770} {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}
771
772do_test 1.6.7.1 {
773  set myres {}
774  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
775    lappend myres [format %.2f [set r]]
776  }
777  set myres
778} {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}
779
780do_test 1.6.7.2 {
781  set myres {}
782  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
783    lappend myres [format %.2f [set r]]
784  }
785  set myres
786} {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}
787
788do_test 1.6.7.3 {
789  set myres {}
790  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
791    lappend myres [format %.2f [set r]]
792  }
793  set myres
794} {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}
795
796do_test 1.6.7.4 {
797  set myres {}
798  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
799    lappend myres [format %.2f [set r]]
800  }
801  set myres
802} {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}
803
804do_test 1.6.7.5 {
805  set myres {}
806  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
807    lappend myres [format %.2f [set r]]
808  }
809  set myres
810} {0.00 0.00 0.00 0.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}
811
812do_test 1.6.7.6 {
813  set myres {}
814  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}] {
815    lappend myres [format %.2f [set r]]
816  }
817  set myres
818} {0.00 0.00 0.00 0.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}
819
820do_test 1.6.8.1 {
821  set myres {}
822  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 PRECEDING ) FROM t2}] {
823    lappend myres [format %.2f [set r]]
824  }
825  set myres
826} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
827
828do_execsql_test 1.7.2.1 {
829  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
830} {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}
831
832do_execsql_test 1.7.2.2 {
833  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
834} {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
835
836do_execsql_test 1.7.3.1 {
837  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
838} {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}
839
840do_execsql_test 1.7.3.2 {
841  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
842} {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}
843
844do_execsql_test 1.7.4.1 {
845  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
846} {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}
847
848do_execsql_test 1.7.4.2 {
849  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
850} {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}
851
852do_execsql_test 1.7.4.3 {
853  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
854} {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}
855
856do_execsql_test 1.7.4.4 {
857  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
858} {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}
859
860do_execsql_test 1.7.4.5 {
861  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
862} {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}
863
864do_execsql_test 1.7.4.6 {
865  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
866} {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}
867
868do_execsql_test 1.7.5.1 {
869  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) 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.7.5.2 {
873  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) 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.7.5.3 {
877  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
878} {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}
879
880do_execsql_test 1.7.5.4 {
881  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
882} {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}
883
884do_execsql_test 1.7.5.5 {
885  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
886} {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}
887
888do_execsql_test 1.7.5.6 {
889  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
890} {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}
891
892do_execsql_test 1.7.6.1 {
893  SELECT
894      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ),
895      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ),
896      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW )
897    FROM t2
898} {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}
899
900do_test 1.7.7.1 {
901  set myres {}
902  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
903    lappend myres [format %.2f [set r]]
904  }
905  set myres
906} {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}
907
908do_test 1.7.7.2 {
909  set myres {}
910  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
911    lappend myres [format %.2f [set r]]
912  }
913  set myres
914} {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}
915
916do_test 1.7.7.3 {
917  set myres {}
918  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
919    lappend myres [format %.2f [set r]]
920  }
921  set myres
922} {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}
923
924do_test 1.7.7.4 {
925  set myres {}
926  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
927    lappend myres [format %.2f [set r]]
928  }
929  set myres
930} {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}
931
932do_test 1.7.7.5 {
933  set myres {}
934  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
935    lappend myres [format %.2f [set r]]
936  }
937  set myres
938} {0.00 0.00 0.00 0.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}
939
940do_test 1.7.7.6 {
941  set myres {}
942  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}] {
943    lappend myres [format %.2f [set r]]
944  }
945  set myres
946} {0.00 0.00 0.00 0.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}
947
948do_test 1.7.8.1 {
949  set myres {}
950  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
951    lappend myres [format %.2f [set r]]
952  }
953  set myres
954} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
955
956do_execsql_test 1.8.2.1 {
957  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
958} {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}
959
960do_execsql_test 1.8.2.2 {
961  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
962} {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}
963
964do_execsql_test 1.8.3.1 {
965  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
966} {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}
967
968do_execsql_test 1.8.3.2 {
969  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
970} {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}
971
972do_execsql_test 1.8.4.1 {
973  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
974} {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}
975
976do_execsql_test 1.8.4.2 {
977  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
978} {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}
979
980do_execsql_test 1.8.4.3 {
981  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
982} {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}
983
984do_execsql_test 1.8.4.4 {
985  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
986} {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}
987
988do_execsql_test 1.8.4.5 {
989  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
990} {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}
991
992do_execsql_test 1.8.4.6 {
993  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
994} {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}
995
996do_execsql_test 1.8.5.1 {
997  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
998} {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}
999
1000do_execsql_test 1.8.5.2 {
1001  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1002} {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}
1003
1004do_execsql_test 1.8.5.3 {
1005  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1006} {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}
1007
1008do_execsql_test 1.8.5.4 {
1009  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1010} {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}
1011
1012do_execsql_test 1.8.5.5 {
1013  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1014} {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}
1015
1016do_execsql_test 1.8.5.6 {
1017  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2
1018} {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}
1019
1020do_execsql_test 1.8.6.1 {
1021  SELECT
1022      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ),
1023      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ),
1024      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW )
1025    FROM t2
1026} {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}
1027
1028do_test 1.8.7.1 {
1029  set myres {}
1030  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
1031    lappend myres [format %.2f [set r]]
1032  }
1033  set myres
1034} {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}
1035
1036do_test 1.8.7.2 {
1037  set myres {}
1038  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
1039    lappend myres [format %.2f [set r]]
1040  }
1041  set myres
1042} {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}
1043
1044do_test 1.8.7.3 {
1045  set myres {}
1046  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
1047    lappend myres [format %.2f [set r]]
1048  }
1049  set myres
1050} {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}
1051
1052do_test 1.8.7.4 {
1053  set myres {}
1054  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
1055    lappend myres [format %.2f [set r]]
1056  }
1057  set myres
1058} {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}
1059
1060do_test 1.8.7.5 {
1061  set myres {}
1062  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
1063    lappend myres [format %.2f [set r]]
1064  }
1065  set myres
1066} {0.00 0.00 0.00 0.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}
1067
1068do_test 1.8.7.6 {
1069  set myres {}
1070  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}] {
1071    lappend myres [format %.2f [set r]]
1072  }
1073  set myres
1074} {0.00 0.00 0.00 0.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}
1075
1076do_test 1.8.8.1 {
1077  set myres {}
1078  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND CURRENT ROW ) FROM t2}] {
1079    lappend myres [format %.2f [set r]]
1080  }
1081  set myres
1082} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
1083
1084do_execsql_test 1.9.2.1 {
1085  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1086} {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}
1087
1088do_execsql_test 1.9.2.2 {
1089  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1090} {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}
1091
1092do_execsql_test 1.9.3.1 {
1093  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1094} {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}
1095
1096do_execsql_test 1.9.3.2 {
1097  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1098} {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}
1099
1100do_execsql_test 1.9.4.1 {
1101  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1102} {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}
1103
1104do_execsql_test 1.9.4.2 {
1105  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1106} {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}
1107
1108do_execsql_test 1.9.4.3 {
1109  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1110} {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}
1111
1112do_execsql_test 1.9.4.4 {
1113  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1114} {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}
1115
1116do_execsql_test 1.9.4.5 {
1117  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1118} {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}
1119
1120do_execsql_test 1.9.4.6 {
1121  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1122} {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}
1123
1124do_execsql_test 1.9.5.1 {
1125  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) 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.9.5.2 {
1129  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) 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.9.5.3 {
1133  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1134} {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}
1135
1136do_execsql_test 1.9.5.4 {
1137  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1138} {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}
1139
1140do_execsql_test 1.9.5.5 {
1141  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1142} {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}
1143
1144do_execsql_test 1.9.5.6 {
1145  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2
1146} {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}
1147
1148do_execsql_test 1.9.6.1 {
1149  SELECT
1150      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ),
1151      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ),
1152      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW )
1153    FROM t2
1154} {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}
1155
1156do_test 1.9.7.1 {
1157  set myres {}
1158  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
1159    lappend myres [format %.2f [set r]]
1160  }
1161  set myres
1162} {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}
1163
1164do_test 1.9.7.2 {
1165  set myres {}
1166  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
1167    lappend myres [format %.2f [set r]]
1168  }
1169  set myres
1170} {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}
1171
1172do_test 1.9.7.3 {
1173  set myres {}
1174  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
1175    lappend myres [format %.2f [set r]]
1176  }
1177  set myres
1178} {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}
1179
1180do_test 1.9.7.4 {
1181  set myres {}
1182  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
1183    lappend myres [format %.2f [set r]]
1184  }
1185  set myres
1186} {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}
1187
1188do_test 1.9.7.5 {
1189  set myres {}
1190  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
1191    lappend myres [format %.2f [set r]]
1192  }
1193  set myres
1194} {0.00 0.00 0.00 0.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}
1195
1196do_test 1.9.7.6 {
1197  set myres {}
1198  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}] {
1199    lappend myres [format %.2f [set r]]
1200  }
1201  set myres
1202} {0.00 0.00 0.00 0.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}
1203
1204do_test 1.9.8.1 {
1205  set myres {}
1206  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND CURRENT ROW ) FROM t2}] {
1207    lappend myres [format %.2f [set r]]
1208  }
1209  set myres
1210} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
1211
1212do_execsql_test 1.10.2.1 {
1213  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1214} {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}
1215
1216do_execsql_test 1.10.2.2 {
1217  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1218} {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
1219
1220do_execsql_test 1.10.3.1 {
1221  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1222} {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}
1223
1224do_execsql_test 1.10.3.2 {
1225  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1226} {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}
1227
1228do_execsql_test 1.10.4.1 {
1229  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1230} {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}
1231
1232do_execsql_test 1.10.4.2 {
1233  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1234} {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}
1235
1236do_execsql_test 1.10.4.3 {
1237  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1238} {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}
1239
1240do_execsql_test 1.10.4.4 {
1241  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1242} {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}
1243
1244do_execsql_test 1.10.4.5 {
1245  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1246} {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}
1247
1248do_execsql_test 1.10.4.6 {
1249  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1250} {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}
1251
1252do_execsql_test 1.10.5.1 {
1253  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1254} {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}
1255
1256do_execsql_test 1.10.5.2 {
1257  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1258} {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}
1259
1260do_execsql_test 1.10.5.3 {
1261  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1262} {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}
1263
1264do_execsql_test 1.10.5.4 {
1265  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1266} {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}
1267
1268do_execsql_test 1.10.5.5 {
1269  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1270} {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}
1271
1272do_execsql_test 1.10.5.6 {
1273  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
1274} {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}
1275
1276do_execsql_test 1.10.6.1 {
1277  SELECT
1278      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ),
1279      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ),
1280      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING )
1281    FROM t2
1282} {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}
1283
1284do_test 1.10.7.1 {
1285  set myres {}
1286  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
1287    lappend myres [format %.2f [set r]]
1288  }
1289  set myres
1290} {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}
1291
1292do_test 1.10.7.2 {
1293  set myres {}
1294  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
1295    lappend myres [format %.2f [set r]]
1296  }
1297  set myres
1298} {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}
1299
1300do_test 1.10.7.3 {
1301  set myres {}
1302  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
1303    lappend myres [format %.2f [set r]]
1304  }
1305  set myres
1306} {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}
1307
1308do_test 1.10.7.4 {
1309  set myres {}
1310  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
1311    lappend myres [format %.2f [set r]]
1312  }
1313  set myres
1314} {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}
1315
1316do_test 1.10.7.5 {
1317  set myres {}
1318  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
1319    lappend myres [format %.2f [set r]]
1320  }
1321  set myres
1322} {0.00 0.00 0.00 0.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}
1323
1324do_test 1.10.7.6 {
1325  set myres {}
1326  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}] {
1327    lappend myres [format %.2f [set r]]
1328  }
1329  set myres
1330} {0.00 0.00 0.00 0.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}
1331
1332do_test 1.10.8.1 {
1333  set myres {}
1334  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
1335    lappend myres [format %.2f [set r]]
1336  }
1337  set myres
1338} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
1339
1340do_execsql_test 1.11.2.1 {
1341  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1342} {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}
1343
1344do_execsql_test 1.11.2.2 {
1345  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1346} {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}
1347
1348do_execsql_test 1.11.3.1 {
1349  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1350} {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}
1351
1352do_execsql_test 1.11.3.2 {
1353  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1354} {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}
1355
1356do_execsql_test 1.11.4.1 {
1357  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1358} {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}
1359
1360do_execsql_test 1.11.4.2 {
1361  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1362} {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}
1363
1364do_execsql_test 1.11.4.3 {
1365  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1366} {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}
1367
1368do_execsql_test 1.11.4.4 {
1369  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1370} {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}
1371
1372do_execsql_test 1.11.4.5 {
1373  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1374} {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}
1375
1376do_execsql_test 1.11.4.6 {
1377  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1378} {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}
1379
1380do_execsql_test 1.11.5.1 {
1381  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1382} {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}
1383
1384do_execsql_test 1.11.5.2 {
1385  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1386} {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}
1387
1388do_execsql_test 1.11.5.3 {
1389  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1390} {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}
1391
1392do_execsql_test 1.11.5.4 {
1393  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1394} {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}
1395
1396do_execsql_test 1.11.5.5 {
1397  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1398} {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}
1399
1400do_execsql_test 1.11.5.6 {
1401  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2
1402} {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}
1403
1404do_execsql_test 1.11.6.1 {
1405  SELECT
1406      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ),
1407      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ),
1408      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING )
1409    FROM t2
1410} {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}
1411
1412do_test 1.11.7.1 {
1413  set myres {}
1414  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
1415    lappend myres [format %.2f [set r]]
1416  }
1417  set myres
1418} {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}
1419
1420do_test 1.11.7.2 {
1421  set myres {}
1422  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
1423    lappend myres [format %.2f [set r]]
1424  }
1425  set myres
1426} {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}
1427
1428do_test 1.11.7.3 {
1429  set myres {}
1430  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
1431    lappend myres [format %.2f [set r]]
1432  }
1433  set myres
1434} {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}
1435
1436do_test 1.11.7.4 {
1437  set myres {}
1438  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
1439    lappend myres [format %.2f [set r]]
1440  }
1441  set myres
1442} {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}
1443
1444do_test 1.11.7.5 {
1445  set myres {}
1446  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
1447    lappend myres [format %.2f [set r]]
1448  }
1449  set myres
1450} {0.00 0.00 0.00 0.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}
1451
1452do_test 1.11.7.6 {
1453  set myres {}
1454  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}] {
1455    lappend myres [format %.2f [set r]]
1456  }
1457  set myres
1458} {0.00 0.00 0.00 0.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}
1459
1460do_test 1.11.8.1 {
1461  set myres {}
1462  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND 2 FOLLOWING ) FROM t2}] {
1463    lappend myres [format %.2f [set r]]
1464  }
1465  set myres
1466} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
1467
1468do_execsql_test 1.12.2.1 {
1469  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1470} {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}
1471
1472do_execsql_test 1.12.2.2 {
1473  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1474} {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}
1475
1476do_execsql_test 1.12.3.1 {
1477  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1478} {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}
1479
1480do_execsql_test 1.12.3.2 {
1481  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1482} {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}
1483
1484do_execsql_test 1.12.4.1 {
1485  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1486} {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}
1487
1488do_execsql_test 1.12.4.2 {
1489  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1490} {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}
1491
1492do_execsql_test 1.12.4.3 {
1493  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1494} {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}
1495
1496do_execsql_test 1.12.4.4 {
1497  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1498} {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}
1499
1500do_execsql_test 1.12.4.5 {
1501  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1502} {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}
1503
1504do_execsql_test 1.12.4.6 {
1505  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1506} {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}
1507
1508do_execsql_test 1.12.5.1 {
1509  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1510} {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}
1511
1512do_execsql_test 1.12.5.2 {
1513  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1514} {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}
1515
1516do_execsql_test 1.12.5.3 {
1517  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1518} {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}
1519
1520do_execsql_test 1.12.5.4 {
1521  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1522} {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}
1523
1524do_execsql_test 1.12.5.5 {
1525  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1526} {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}
1527
1528do_execsql_test 1.12.5.6 {
1529  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2
1530} {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}
1531
1532do_execsql_test 1.12.6.1 {
1533  SELECT
1534      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ),
1535      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ),
1536      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING )
1537    FROM t2
1538} {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}
1539
1540do_test 1.12.7.1 {
1541  set myres {}
1542  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
1543    lappend myres [format %.2f [set r]]
1544  }
1545  set myres
1546} {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}
1547
1548do_test 1.12.7.2 {
1549  set myres {}
1550  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
1551    lappend myres [format %.2f [set r]]
1552  }
1553  set myres
1554} {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}
1555
1556do_test 1.12.7.3 {
1557  set myres {}
1558  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
1559    lappend myres [format %.2f [set r]]
1560  }
1561  set myres
1562} {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}
1563
1564do_test 1.12.7.4 {
1565  set myres {}
1566  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
1567    lappend myres [format %.2f [set r]]
1568  }
1569  set myres
1570} {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}
1571
1572do_test 1.12.7.5 {
1573  set myres {}
1574  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
1575    lappend myres [format %.2f [set r]]
1576  }
1577  set myres
1578} {0.00 0.00 0.00 0.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}
1579
1580do_test 1.12.7.6 {
1581  set myres {}
1582  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}] {
1583    lappend myres [format %.2f [set r]]
1584  }
1585  set myres
1586} {0.00 0.00 0.00 0.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}
1587
1588do_test 1.12.8.1 {
1589  set myres {}
1590  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND 4 FOLLOWING ) FROM t2}] {
1591    lappend myres [format %.2f [set r]]
1592  }
1593  set myres
1594} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
1595
1596do_execsql_test 1.13.2.1 {
1597  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1598} {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   {}   {}}
1599
1600do_execsql_test 1.13.2.2 {
1601  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1602} {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   {}   {}}
1603
1604do_execsql_test 1.13.3.1 {
1605  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1606} {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}
1607
1608do_execsql_test 1.13.3.2 {
1609  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1610} {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}
1611
1612do_execsql_test 1.13.4.1 {
1613  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1614} {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}
1615
1616do_execsql_test 1.13.4.2 {
1617  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1618} {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}
1619
1620do_execsql_test 1.13.4.3 {
1621  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1622} {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}
1623
1624do_execsql_test 1.13.4.4 {
1625  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1626} {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}
1627
1628do_execsql_test 1.13.4.5 {
1629  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1630} {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}
1631
1632do_execsql_test 1.13.4.6 {
1633  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1634} {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}
1635
1636do_execsql_test 1.13.5.1 {
1637  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1638} {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}
1639
1640do_execsql_test 1.13.5.2 {
1641  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1642} {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}
1643
1644do_execsql_test 1.13.5.3 {
1645  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1646} {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}
1647
1648do_execsql_test 1.13.5.4 {
1649  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1650} {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}
1651
1652do_execsql_test 1.13.5.5 {
1653  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1654} {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}
1655
1656do_execsql_test 1.13.5.6 {
1657  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2
1658} {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}
1659
1660do_execsql_test 1.13.6.1 {
1661  SELECT
1662      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ),
1663      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ),
1664      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING )
1665    FROM t2
1666} {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}
1667
1668do_test 1.13.7.1 {
1669  set myres {}
1670  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
1671    lappend myres [format %.2f [set r]]
1672  }
1673  set myres
1674} {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}
1675
1676do_test 1.13.7.2 {
1677  set myres {}
1678  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
1679    lappend myres [format %.2f [set r]]
1680  }
1681  set myres
1682} {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}
1683
1684do_test 1.13.7.3 {
1685  set myres {}
1686  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
1687    lappend myres [format %.2f [set r]]
1688  }
1689  set myres
1690} {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}
1691
1692do_test 1.13.7.4 {
1693  set myres {}
1694  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
1695    lappend myres [format %.2f [set r]]
1696  }
1697  set myres
1698} {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}
1699
1700do_test 1.13.7.5 {
1701  set myres {}
1702  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
1703    lappend myres [format %.2f [set r]]
1704  }
1705  set myres
1706} {0.00 0.00 0.00 0.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}
1707
1708do_test 1.13.7.6 {
1709  set myres {}
1710  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}] {
1711    lappend myres [format %.2f [set r]]
1712  }
1713  set myres
1714} {0.00 0.00 0.00 0.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}
1715
1716do_test 1.13.8.1 {
1717  set myres {}
1718  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING    AND 4 FOLLOWING ) FROM t2}] {
1719    lappend myres [format %.2f [set r]]
1720  }
1721  set myres
1722} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
1723
1724do_execsql_test 1.14.2.1 {
1725  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1726} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99}
1727
1728do_execsql_test 1.14.2.2 {
1729  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1730} {0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0}
1731
1732do_execsql_test 1.14.3.1 {
1733  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1734} {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}
1735
1736do_execsql_test 1.14.3.2 {
1737  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1738} {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}
1739
1740do_execsql_test 1.14.4.1 {
1741  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1742} {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}
1743
1744do_execsql_test 1.14.4.2 {
1745  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1746} {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}
1747
1748do_execsql_test 1.14.4.3 {
1749  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1750} {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}
1751
1752do_execsql_test 1.14.4.4 {
1753  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1754} {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}
1755
1756do_execsql_test 1.14.4.5 {
1757  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1758} {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}
1759
1760do_execsql_test 1.14.4.6 {
1761  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1762} {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}
1763
1764do_execsql_test 1.14.5.1 {
1765  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1766} {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}
1767
1768do_execsql_test 1.14.5.2 {
1769  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1770} {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}
1771
1772do_execsql_test 1.14.5.3 {
1773  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1774} {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}
1775
1776do_execsql_test 1.14.5.4 {
1777  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1778} {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}
1779
1780do_execsql_test 1.14.5.5 {
1781  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1782} {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}
1783
1784do_execsql_test 1.14.5.6 {
1785  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
1786} {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}
1787
1788do_execsql_test 1.14.6.1 {
1789  SELECT
1790      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ),
1791      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ),
1792      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )
1793    FROM t2
1794} {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}
1795
1796do_test 1.14.7.1 {
1797  set myres {}
1798  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
1799    lappend myres [format %.2f [set r]]
1800  }
1801  set myres
1802} {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}
1803
1804do_test 1.14.7.2 {
1805  set myres {}
1806  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
1807    lappend myres [format %.2f [set r]]
1808  }
1809  set myres
1810} {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}
1811
1812do_test 1.14.7.3 {
1813  set myres {}
1814  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
1815    lappend myres [format %.2f [set r]]
1816  }
1817  set myres
1818} {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}
1819
1820do_test 1.14.7.4 {
1821  set myres {}
1822  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
1823    lappend myres [format %.2f [set r]]
1824  }
1825  set myres
1826} {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}
1827
1828do_test 1.14.7.5 {
1829  set myres {}
1830  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
1831    lappend myres [format %.2f [set r]]
1832  }
1833  set myres
1834} {0.00 0.00 0.00 0.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}
1835
1836do_test 1.14.7.6 {
1837  set myres {}
1838  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}] {
1839    lappend myres [format %.2f [set r]]
1840  }
1841  set myres
1842} {0.00 0.00 0.00 0.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}
1843
1844do_test 1.14.8.1 {
1845  set myres {}
1846  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
1847    lappend myres [format %.2f [set r]]
1848  }
1849  set myres
1850} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
1851
1852do_execsql_test 1.15.2.1 {
1853  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1854} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   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}
1855
1856do_execsql_test 1.15.2.2 {
1857  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1858} {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}
1859
1860do_execsql_test 1.15.3.1 {
1861  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1862} {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}
1863
1864do_execsql_test 1.15.3.2 {
1865  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1866} {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}
1867
1868do_execsql_test 1.15.4.1 {
1869  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1870} {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}
1871
1872do_execsql_test 1.15.4.2 {
1873  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1874} {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}
1875
1876do_execsql_test 1.15.4.3 {
1877  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1878} {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}
1879
1880do_execsql_test 1.15.4.4 {
1881  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1882} {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}
1883
1884do_execsql_test 1.15.4.5 {
1885  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1886} {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}
1887
1888do_execsql_test 1.15.4.6 {
1889  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1890} {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}
1891
1892do_execsql_test 1.15.5.1 {
1893  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1894} {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}
1895
1896do_execsql_test 1.15.5.2 {
1897  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1898} {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}
1899
1900do_execsql_test 1.15.5.3 {
1901  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1902} {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}
1903
1904do_execsql_test 1.15.5.4 {
1905  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1906} {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}
1907
1908do_execsql_test 1.15.5.5 {
1909  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1910} {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}
1911
1912do_execsql_test 1.15.5.6 {
1913  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2
1914} {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}
1915
1916do_execsql_test 1.15.6.1 {
1917  SELECT
1918      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ),
1919      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ),
1920      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING )
1921    FROM t2
1922} {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}
1923
1924do_test 1.15.7.1 {
1925  set myres {}
1926  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
1927    lappend myres [format %.2f [set r]]
1928  }
1929  set myres
1930} {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}
1931
1932do_test 1.15.7.2 {
1933  set myres {}
1934  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
1935    lappend myres [format %.2f [set r]]
1936  }
1937  set myres
1938} {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}
1939
1940do_test 1.15.7.3 {
1941  set myres {}
1942  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
1943    lappend myres [format %.2f [set r]]
1944  }
1945  set myres
1946} {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}
1947
1948do_test 1.15.7.4 {
1949  set myres {}
1950  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
1951    lappend myres [format %.2f [set r]]
1952  }
1953  set myres
1954} {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}
1955
1956do_test 1.15.7.5 {
1957  set myres {}
1958  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
1959    lappend myres [format %.2f [set r]]
1960  }
1961  set myres
1962} {0.00 0.00 0.00 0.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}
1963
1964do_test 1.15.7.6 {
1965  set myres {}
1966  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}] {
1967    lappend myres [format %.2f [set r]]
1968  }
1969  set myres
1970} {0.00 0.00 0.00 0.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}
1971
1972do_test 1.15.8.1 {
1973  set myres {}
1974  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
1975    lappend myres [format %.2f [set r]]
1976  }
1977  set myres
1978} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
1979
1980do_execsql_test 1.16.2.1 {
1981  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1982} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   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}
1983
1984do_execsql_test 1.16.2.2 {
1985  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1986} {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}
1987
1988do_execsql_test 1.16.3.1 {
1989  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1990} {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}
1991
1992do_execsql_test 1.16.3.2 {
1993  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1994} {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}
1995
1996do_execsql_test 1.16.4.1 {
1997  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
1998} {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}
1999
2000do_execsql_test 1.16.4.2 {
2001  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2002} {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}
2003
2004do_execsql_test 1.16.4.3 {
2005  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2006} {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}
2007
2008do_execsql_test 1.16.4.4 {
2009  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2010} {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}
2011
2012do_execsql_test 1.16.4.5 {
2013  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2014} {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}
2015
2016do_execsql_test 1.16.4.6 {
2017  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2018} {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}
2019
2020do_execsql_test 1.16.5.1 {
2021  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2022} {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}
2023
2024do_execsql_test 1.16.5.2 {
2025  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2026} {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}
2027
2028do_execsql_test 1.16.5.3 {
2029  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2030} {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}
2031
2032do_execsql_test 1.16.5.4 {
2033  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2034} {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}
2035
2036do_execsql_test 1.16.5.5 {
2037  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2038} {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}
2039
2040do_execsql_test 1.16.5.6 {
2041  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2
2042} {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}
2043
2044do_execsql_test 1.16.6.1 {
2045  SELECT
2046      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ),
2047      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ),
2048      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING )
2049    FROM t2
2050} {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}
2051
2052do_test 1.16.7.1 {
2053  set myres {}
2054  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
2055    lappend myres [format %.2f [set r]]
2056  }
2057  set myres
2058} {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}
2059
2060do_test 1.16.7.2 {
2061  set myres {}
2062  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
2063    lappend myres [format %.2f [set r]]
2064  }
2065  set myres
2066} {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}
2067
2068do_test 1.16.7.3 {
2069  set myres {}
2070  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
2071    lappend myres [format %.2f [set r]]
2072  }
2073  set myres
2074} {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}
2075
2076do_test 1.16.7.4 {
2077  set myres {}
2078  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
2079    lappend myres [format %.2f [set r]]
2080  }
2081  set myres
2082} {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}
2083
2084do_test 1.16.7.5 {
2085  set myres {}
2086  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
2087    lappend myres [format %.2f [set r]]
2088  }
2089  set myres
2090} {0.00 0.00 0.00 0.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}
2091
2092do_test 1.16.7.6 {
2093  set myres {}
2094  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}] {
2095    lappend myres [format %.2f [set r]]
2096  }
2097  set myres
2098} {0.00 0.00 0.00 0.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}
2099
2100do_test 1.16.8.1 {
2101  set myres {}
2102  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t2}] {
2103    lappend myres [format %.2f [set r]]
2104  }
2105  set myres
2106} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
2107
2108do_execsql_test 1.17.2.1 {
2109  SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2110} {99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   99   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   {}   {}   {}   {}}
2111
2112do_execsql_test 1.17.2.2 {
2113  SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2114} {1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   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   {}   {}   {}   {}}
2115
2116do_execsql_test 1.17.3.1 {
2117  SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2118} {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}
2119
2120do_execsql_test 1.17.3.2 {
2121  SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2122} {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}
2123
2124do_execsql_test 1.17.4.1 {
2125  SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2126} {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}
2127
2128do_execsql_test 1.17.4.2 {
2129  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2130} {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}
2131
2132do_execsql_test 1.17.4.3 {
2133  SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2134} {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}
2135
2136do_execsql_test 1.17.4.4 {
2137  SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2138} {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}
2139
2140do_execsql_test 1.17.4.5 {
2141  SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2142} {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}
2143
2144do_execsql_test 1.17.4.6 {
2145  SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2146} {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}
2147
2148do_execsql_test 1.17.5.1 {
2149  SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2150} {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}
2151
2152do_execsql_test 1.17.5.2 {
2153  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2154} {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}
2155
2156do_execsql_test 1.17.5.3 {
2157  SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2158} {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}
2159
2160do_execsql_test 1.17.5.4 {
2161  SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2162} {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}
2163
2164do_execsql_test 1.17.5.5 {
2165  SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2166} {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}
2167
2168do_execsql_test 1.17.5.6 {
2169  SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2
2170} {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}
2171
2172do_execsql_test 1.17.6.1 {
2173  SELECT
2174      row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ),
2175      rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ),
2176      dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING )
2177    FROM t2
2178} {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}
2179
2180do_test 1.17.7.1 {
2181  set myres {}
2182  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
2183    lappend myres [format %.2f [set r]]
2184  }
2185  set myres
2186} {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}
2187
2188do_test 1.17.7.2 {
2189  set myres {}
2190  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
2191    lappend myres [format %.2f [set r]]
2192  }
2193  set myres
2194} {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}
2195
2196do_test 1.17.7.3 {
2197  set myres {}
2198  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
2199    lappend myres [format %.2f [set r]]
2200  }
2201  set myres
2202} {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}
2203
2204do_test 1.17.7.4 {
2205  set myres {}
2206  foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
2207    lappend myres [format %.2f [set r]]
2208  }
2209  set myres
2210} {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}
2211
2212do_test 1.17.7.5 {
2213  set myres {}
2214  foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
2215    lappend myres [format %.2f [set r]]
2216  }
2217  set myres
2218} {0.00 0.00 0.00 0.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}
2219
2220do_test 1.17.7.6 {
2221  set myres {}
2222  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}] {
2223    lappend myres [format %.2f [set r]]
2224  }
2225  set myres
2226} {0.00 0.00 0.00 0.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}
2227
2228do_test 1.17.8.1 {
2229  set myres {}
2230  foreach r [db eval {SELECT b, cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING    AND UNBOUNDED FOLLOWING ) FROM t2}] {
2231    lappend myres [format %.2f [set r]]
2232  }
2233  set myres
2234} {0.00 0.01 1.00 0.01 1.00 0.01 2.00 0.03 2.00 0.03 2.00 0.03 3.00 0.04 3.00 0.04 4.00 0.04 5.00 0.05 6.00 0.06 7.00 0.07 7.00 0.07 7.00 0.07 8.00 0.09 8.00 0.09 8.00 0.09 9.00 0.10 9.00 0.10 9.00 0.10 10.00 0.10 11.00 0.12 11.00 0.12 12.00 0.13 12.00 0.13 12.00 0.13 13.00 0.14 13.00 0.14 14.00 0.14 15.00 0.16 15.00 0.16 15.00 0.16 16.00 0.17 16.00 0.17 16.00 0.17 17.00 0.18 19.00 0.18 20.00 0.19 21.00 0.20 21.00 0.20 22.00 0.21 22.00 0.21 23.00 0.23 23.00 0.23 23.00 0.23 24.00 0.23 25.00 0.23 26.00 0.25 26.00 0.25 26.00 0.25 27.00 0.26 27.00 0.26 28.00 0.27 29.00 0.28 29.00 0.28 29.00 0.28 30.00 0.29 30.00 0.29 30.00 0.29 31.00 0.30 31.00 0.30 32.00 0.31 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 33.00 0.34 34.00 0.35 34.00 0.35 34.00 0.35 34.00 0.35 35.00 0.36 35.00 0.36 36.00 0.39 36.00 0.39 36.00 0.39 36.00 0.39 37.00 0.40 37.00 0.40 38.00 0.41 38.00 0.41 39.00 0.42 39.00 0.42 39.00 0.42 40.00 0.42 41.00 0.44 41.00 0.44 41.00 0.44 42.00 0.45 43.00 0.46 43.00 0.46 44.00 0.47 44.00 0.47 46.00 0.47 46.00 0.47 47.00 0.49 47.00 0.49 47.00 0.49 47.00 0.49 49.00 0.50 50.00 0.51 51.00 0.51 52.00 0.52 53.00 0.52 54.00 0.53 55.00 0.54 55.00 0.54 56.00 0.55 56.00 0.55 56.00 0.55 57.00 0.56 58.00 0.57 58.00 0.57 58.00 0.57 58.00 0.57 59.00 0.59 59.00 0.59 59.00 0.59 59.00 0.59 60.00 0.60 61.00 0.61 61.00 0.61 62.00 0.62 62.00 0.62 63.00 0.62 64.00 0.63 65.00 0.65 65.00 0.65 65.00 0.65 66.00 0.65 67.00 0.66 68.00 0.66 69.00 0.67 70.00 0.67 72.00 0.69 72.00 0.69 72.00 0.69 73.00 0.70 73.00 0.70 73.00 0.70 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 74.00 0.72 75.00 0.74 75.00 0.74 75.00 0.74 76.00 0.74 77.00 0.76 77.00 0.76 78.00 0.77 78.00 0.77 79.00 0.77 80.00 0.78 80.00 0.78 81.00 0.80 81.00 0.80 81.00 0.80 82.00 0.80 83.00 0.81 84.00 0.82 84.00 0.82 84.00 0.82 84.00 0.82 85.00 0.84 85.00 0.84 85.00 0.84 86.00 0.84 87.00 0.85 87.00 0.85 88.00 0.86 89.00 0.88 89.00 0.88 89.00 0.88 90.00 0.89 90.00 0.89 90.00 0.89 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 91.00 0.92 93.00 0.93 93.00 0.93 93.00 0.93 94.00 0.94 95.00 0.95 95.00 0.95 95.00 0.95 96.00 0.96 96.00 0.96 96.00 0.96 97.00 0.97 97.00 0.97 98.00 0.98 98.00 0.98 99.00 1.00 99.00 1.00 99.00 1.00}
2235
2236finish_test
2237