# name: test/sql/window/test_window_range.test # description: Range functionality tests. Taken from sqlite test/window8.test # group: [window] statement ok PRAGMA enable_verification statement ok CREATE TABLE t1(a REAL, b INTEGER); statement ok INSERT INTO t1 VALUES (5, 10), (10, 20), (13, 26), (13, 26), (15, 30), (20, 40), (22,80), (30, 90); # Binding errors statement error SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a, b RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING ) ---- statement error SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 'a' PRECEDING AND 'a' FOLLOWING ) ---- # Numeric type coverage foreach type statement ok CREATE VIEW c1 AS SELECT a::${type} AS a, b FROM t1; query II SELECT a, sum(b) OVER win FROM c1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 5::${type} PRECEDING AND 5::${type} FOLLOWING ) ---- 5 30 10 112 13 102 13 102 15 142 20 150 22 120 30 90 statement ok DROP VIEW c1; endloop # Temporal type coverage statement ok CREATE VIEW c1 AS SELECT INTERVAL (a) DAYS AS a, b FROM t1; query II SELECT a, sum(b) OVER win FROM c1 WINDOW win AS ( ORDER BY a RANGE BETWEEN interval 5 days PRECEDING AND interval 5 days FOLLOWING ) ---- 5 days 30 10 days 112 13 days 102 13 days 102 15 days 142 20 days 150 22 days 120 30 days 90 statement ok DROP VIEW c1; statement ok CREATE VIEW c1 AS SELECT '2021-07-28'::DATE + INTERVAL (a) DAYS AS a, b FROM t1; query II SELECT a, sum(b) OVER win FROM c1 WINDOW win AS ( ORDER BY a RANGE BETWEEN interval 5 days PRECEDING AND interval 5 days FOLLOWING ) ---- 2021-08-02 00:00:00 30 2021-08-07 00:00:00 112 2021-08-10 00:00:00 102 2021-08-10 00:00:00 102 2021-08-12 00:00:00 142 2021-08-17 00:00:00 150 2021-08-19 00:00:00 120 2021-08-27 00:00:00 90 statement ok DROP VIEW c1; statement ok CREATE VIEW c1 AS SELECT '2021-07-28'::TIMESTAMP + INTERVAL (a) HOURS AS a, b FROM t1; query II SELECT a, sum(b) OVER win FROM c1 WINDOW win AS ( ORDER BY a RANGE BETWEEN INTERVAL 5 HOURS PRECEDING AND INTERVAL 5 HOURS FOLLOWING ) ---- 2021-07-28 05:00:00 30 2021-07-28 10:00:00 112 2021-07-28 13:00:00 102 2021-07-28 13:00:00 102 2021-07-28 15:00:00 142 2021-07-28 20:00:00 150 2021-07-28 22:00:00 120 2021-07-29 06:00:00 90 statement ok DROP VIEW c1; # Time types will wrap unless we bind the ordering as epoch + time statement ok CREATE TABLE t_time(t TIME); statement ok INSERT INTO t_time VALUES ('12:30:00'), ('22:30:00'), ('13:30:00'), ('01:30:00'), ('15:30:00'), ('20:30:00'), ('04:30:00'), ('06:30:00'), ('18:30:00'), ('21:30:00'), ('00:30:00'), ('00:31:00'); query II SELECT t, FIRST_VALUE(t) OVER w AS fv FROM t_time WINDOW w AS (ORDER BY t RANGE INTERVAL 2 HOUR PRECEDING); ---- 00:30:00 00:30:00 00:31:00 00:30:00 01:30:00 00:30:00 04:30:00 04:30:00 06:30:00 04:30:00 12:30:00 12:30:00 13:30:00 12:30:00 15:30:00 13:30:00 18:30:00 18:30:00 20:30:00 18:30:00 21:30:00 20:30:00 22:30:00 20:30:00 # Invalid type coverage foreach type boolean varchar statement ok CREATE VIEW c1 AS SELECT a::${type} AS a, b FROM t1; statement error SELECT a, sum(b) OVER win FROM c1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING ) ---- statement ok DROP VIEW c1; endloop # SQLite RANGE queries # do_execsql_test 1.0 statement ok CREATE TABLE t3(a TEXT, b TEXT, c INTEGER); statement ok INSERT INTO t3 VALUES ('HH', 'bb', 355), ('CC', 'aa', 158), ('BB', 'aa', 399), ('FF', 'bb', 938), ('HH', 'aa', 480), ('FF', 'bb', 870), ('JJ', 'aa', 768), ('JJ', 'aa', 899), ('GG', 'bb', 929), ('II', 'bb', 421), ('GG', 'bb', 844), ('FF', 'bb', 574), ('CC', 'bb', 822), ('GG', 'bb', 938), ('BB', 'aa', 660), ('HH', 'aa', 979), ('BB', 'bb', 792), ('DD', 'aa', 845), ('JJ', 'bb', 354), ('FF', 'bb', 295), ('JJ', 'aa', 234), ('BB', 'bb', 840), ('AA', 'aa', 934), ('EE', 'aa', 113), ('AA', 'bb', 309), ('BB', 'aa', 412), ('AA', 'aa', 911), ('AA', 'bb', 572), ('II', 'aa', 398), ('II', 'bb', 250), ('II', 'aa', 652), ('BB', 'bb', 633), ('AA', 'aa', 239), ('FF', 'aa', 670), ('BB', 'bb', 705), ('HH', 'bb', 963), ('CC', 'bb', 346), ('II', 'bb', 671), ('BB', 'aa', 247), ('AA', 'aa', 223), ('GG', 'aa', 480), ('HH', 'aa', 790), ('FF', 'aa', 208), ('BB', 'bb', 711), ('EE', 'aa', 777), ('DD', 'bb', 716), ('CC', 'aa', 759), ('CC', 'aa', 430), ('CC', 'aa', 607), ('DD', 'bb', 794), ('GG', 'aa', 148), ('GG', 'aa', 634), ('JJ', 'bb', 257), ('DD', 'bb', 959), ('FF', 'bb', 726), ('BB', 'aa', 762), ('JJ', 'bb', 336), ('GG', 'aa', 335), ('HH', 'bb', 330), ('GG', 'bb', 160), ('JJ', 'bb', 839), ('FF', 'aa', 618), ('BB', 'aa', 393), ('EE', 'bb', 629), ('FF', 'aa', 667), ('AA', 'bb', 870), ('FF', 'bb', 102), ('JJ', 'aa', 113), ('DD', 'aa', 224), ('AA', 'bb', 627), ('HH', 'bb', 730), ('II', 'bb', 443), ('HH', 'bb', 133), ('EE', 'bb', 252), ('II', 'bb', 805), ('BB', 'bb', 786), ('EE', 'bb', 768), ('HH', 'bb', 683), ('DD', 'bb', 238), ('DD', 'aa', 256); # do_execsql_test 3.1 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING ) ---- 5 30 10 112 13 102 13 102 15 142 20 150 22 120 30 90 # do_execsql_test 3.2 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 10 PRECEDING AND 5 PRECEDING ) ---- 5 NULL 10 10 13 10 13 10 15 30 20 102 22 82 30 120 # do_execsql_test 3.3 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 2 FOLLOWING AND 3 FOLLOWING ) ---- 5 NULL 10 52 13 30 13 30 15 NULL 20 80 22 NULL 30 NULL # do_execsql_test 3.4 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING ) ---- 30 90 22 120 20 150 15 142 13 102 13 102 10 112 5 30 # do_execsql_test 3.5 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 10 PRECEDING AND 5 PRECEDING ) ---- 30 NULL 22 90 20 90 15 120 13 120 13 120 10 70 5 102 # do_execsql_test 3.6 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 2 FOLLOWING AND 3 FOLLOWING ) ---- 30 NULL 22 40 20 NULL 15 52 13 20 13 20 10 NULL 5 NULL # do_execsql_test 3.7 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 5.1 PRECEDING AND 5.3 FOLLOWING ) ---- 5 30 10 112 13 102 13 102 15 142 20 150 22 120 30 90 # do_execsql_test 3.8 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 10.2 PRECEDING AND 5.4 PRECEDING ) ---- 5 NULL 10 NULL 13 10 13 10 15 10 20 72 22 82 30 120 # do_execsql_test 3.9 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 2.6 FOLLOWING AND 3.5 FOLLOWING ) ---- 5 NULL 10 52 13 NULL 13 NULL 15 NULL 20 NULL 22 NULL 30 NULL # do_execsql_test 3.10 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 5.7 PRECEDING AND 5.8 FOLLOWING ) ---- 30 90 22 120 20 150 15 142 13 102 13 102 10 112 5 30 # do_execsql_test 3.11 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN UNBOUNDED PRECEDING AND 5.9 PRECEDING ) ---- 30 NULL 22 90 20 90 15 170 13 210 13 210 10 210 5 292 # do_execsql_test 3.12 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 2.1 FOLLOWING AND UNBOUNDED FOLLOWING ) ---- 30 232 22 112 20 112 15 30 13 30 13 30 10 10 5 NULL # do_execsql_test 3.13 query II SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE 5.1 PRECEDING ) ---- 5 10 10 30 13 72 13 72 15 102 20 70 22 120 30 90 #========================================================================== statement ok DROP TABLE IF EXISTS t1; statement ok CREATE TABLE t1(a INTEGER, b INTEGER); statement ok INSERT INTO t1 VALUES (NULL, 1), (NULL, 2), (NULL, 3), (10, 4), (10, 5); query I SELECT sum(b) OVER ( ORDER BY a RANGE BETWEEN 5 PRECEDING AND 10 FOLLOWING ) FROM t1 ORDER BY 1; ---- 6 6 6 9 9 # do_execsql_test 4.1.2 query I SELECT sum(b) OVER ( ORDER BY a DESC RANGE BETWEEN 5 PRECEDING AND 10 FOLLOWING ) FROM t1 ORDER BY 1; ---- 6 6 6 9 9 # do_execsql_test 4.2.1 query I SELECT sum(b) OVER ( ORDER BY a RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING ) FROM t1 ORDER BY 1 NULLS FIRST; ---- NULL NULL 6 6 6 # do_execsql_test 4.2.2 query I SELECT sum(b) OVER ( ORDER BY a RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING ) FROM t1 ORDER BY 1 NULLS LAST; ---- 6 6 6 NULL NULL # do_execsql_test 4.2.3 query I SELECT sum(b) OVER ( ORDER BY a DESC RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING ) FROM t1 ORDER BY 1 NULLS FIRST; ---- NULL NULL 6 6 6 # do_execsql_test 4.2.4 query I SELECT sum(b) OVER ( ORDER BY a DESC RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING ) FROM t1 ORDER BY 1 NULLS LAST; ---- 6 6 6 NULL NULL # do_execsql_test 4.3.1 query I SELECT sum(b) OVER ( ORDER BY a NULLS FIRST RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING ) FROM t1 ORDER BY 1 NULLS FIRST; ---- 6 6 6 15 15 # do_execsql_test 4.3.2 query I SELECT sum(b) OVER ( ORDER BY a NULLS LAST RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING ) FROM t1 ORDER BY 1 NULLS LAST; ---- 9 9 15 15 15 # do_execsql_test 4.5.1 query I SELECT sum(b) OVER ( ORDER BY a ASC NULLS LAST RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING ) FROM t1 ORDER BY 1 NULLS LAST; ---- 9 9 15 15 15 # do_execsql_test 4.5.2 query I SELECT sum(b) OVER ( ORDER BY a DESC NULLS FIRST RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING ) FROM t1 ORDER BY 1 NULLS LAST; ---- 6 6 6 15 15 query I SELECT sum(b) OVER ( ORDER BY a NULLS FIRST RANGE BETWEEN CURRENT ROW AND 10 FOLLOWING ) FROM t1 ORDER BY 1 NULLS FIRST; ---- 6 6 6 9 9 #========================================================================== # do_execsql_test 5.0 statement ok INSERT INTO t3 VALUES (NULL, 'bb', 355), (NULL, 'cc', 158), (NULL, 'aa', 399), ('JJ', NULL, 839), ('FF', NULL, 618), ('BB', NULL, 393), (NULL, 'bb', 629), (NULL, NULL, 667), (NULL, NULL, 870); # do_execsql_test 5.1.1.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 # do_execsql_test 5.1.1.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 # do_execsql_test 5.1.2.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS FIRST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 # do_execsql_test 5.1.2.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS FIRST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 2947 81 11 2947 81 11 2947 81 11 2947 81 11 2947 81 11 2947 81 11 2947 81 11 2947 81 11 2947 81 11 5287 74 10 5287 74 10 5287 74 10 5287 74 10 5287 74 10 5287 74 10 5287 74 10 8400 65 9 8400 65 9 8400 65 9 8400 65 9 8400 65 9 8400 65 9 8400 65 9 8400 65 9 8400 65 9 9664 57 8 9664 57 8 9664 57 8 9664 57 8 9664 57 8 9664 57 8 9664 57 8 9664 57 8 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 12145 41 6 12145 41 6 12145 41 6 12145 41 6 12145 41 6 13949 34 5 13949 34 5 13949 34 5 13949 34 5 13949 34 5 13949 34 5 13949 34 5 15315 28 4 15315 28 4 15315 28 4 15315 28 4 15315 28 4 15315 28 4 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 21105 7 2 21105 7 2 21105 7 2 21105 7 2 21105 7 2 21105 7 2 21105 7 2 21105 7 2 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 # do_execsql_test 5.1.3.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 777 113 5 777 113 5 777 113 5 777 113 5 777 113 5 805 250 7 805 250 7 805 250 7 805 250 7 805 250 7 805 250 7 805 250 7 822 158 6 822 158 6 822 158 6 822 158 6 822 158 6 822 158 6 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 148 8 938 148 8 938 148 8 938 148 8 938 148 8 938 148 8 938 148 8 938 148 8 959 224 7 959 224 7 959 224 7 959 224 7 959 224 7 959 224 7 959 224 7 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9 # do_execsql_test 5.1.3.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1366 1 1 1366 1 1 1366 1 1 1366 1 1 1366 1 1 1366 1 1 1519 1 1 1519 1 1 1519 1 1 1519 1 1 1519 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2340 1 1 2340 1 1 2340 1 1 2340 1 1 2340 1 1 2340 1 1 2340 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 # do_execsql_test 5.1.5.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 2 113 113 2 133 133 1 148 148 1 160 158 2 160 158 2 160 158 2 208 208 1 224 223 2 224 223 2 239 234 3 239 234 3 239 234 3 252 247 3 257 247 5 257 247 5 257 250 4 257 252 3 295 295 1 309 309 1 336 330 3 336 330 3 336 330 3 346 346 1 355 354 2 355 354 2 355 354 2 399 393 4 399 393 4 399 393 4 399 393 4 399 393 4 412 412 1 421 421 1 430 430 1 443 443 1 480 480 2 480 480 2 574 572 2 574 572 2 607 607 1 618 618 2 618 618 2 634 627 4 634 627 4 634 627 4 634 627 4 634 629 3 652 652 1 667 660 2 671 667 3 671 667 3 671 667 3 671 667 3 683 683 1 711 705 2 716 705 3 716 711 2 730 726 2 730 726 2 762 759 2 768 759 4 768 762 3 768 762 3 777 777 1 792 786 3 794 786 4 794 786 4 794 790 3 805 805 1 822 822 1 845 839 5 845 839 5 845 839 5 845 839 5 845 839 5 870 870 2 870 870 2 870 870 2 899 899 1 911 911 1 934 929 2 938 929 4 938 934 3 938 934 3 963 959 2 963 959 2 979 979 1 # do_execsql_test 5.1.5.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 25 23 NULL 34 29 NULL 36 31 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 43 37 NULL 43 37 NULL 50 42 NULL 60 51 NULL 61 52 NULL 64 55 NULL 64 55 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 72 62 NULL 78 67 NULL 78 67 NULL 78 67 NULL 85 72 NULL 85 72 133 4 3 223 10 8 223 11 9 226 2 2 226 2 2 239 12 10 239 13 11 239 14 12 247 15 13 257 18 16 257 19 17 295 20 18 309 21 19 335 22 20 335 23 21 335 24 22 421 35 30 443 37 32 504 16 14 504 17 15 607 42 36 683 56 47 710 26 24 710 27 25 710 27 25 711 59 50 759 62 53 759 63 54 777 66 56 805 71 61 899 81 68 911 82 69 929 83 70 929 84 71 979 89 75 1334 51 43 1416 57 48 1416 58 49 1584 29 26 1584 29 26 1584 31 27 1584 32 28 1584 32 28 1891 49 41 1922 87 73 1922 88 74 2005 52 44 2005 52 44 2005 54 45 2005 55 46 2518 45 38 2518 46 39 2518 46 39 2518 48 40 2523 73 63 2523 73 63 2523 75 64 2523 76 65 2523 77 66 # do_execsql_test 5.1.6.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 2 113 113 2 133 133 1 148 148 1 158 158 1 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 346 346 1 354 354 1 355 355 1 355 355 1 393 393 2 393 393 2 398 398 1 399 399 1 399 399 1 412 412 1 421 421 1 430 430 1 443 443 1 480 480 2 480 480 2 572 572 1 574 574 1 607 607 1 618 618 2 618 618 2 627 627 1 629 629 1 629 629 1 633 633 1 634 634 1 652 652 1 660 660 1 667 667 1 667 667 1 670 670 1 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 730 730 1 759 759 1 762 762 1 768 768 2 768 768 2 777 777 1 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 839 839 2 839 839 2 840 840 1 844 844 1 845 845 1 870 870 2 870 870 2 870 870 2 899 899 1 911 911 1 929 929 1 934 934 1 938 938 2 938 938 2 959 959 1 963 963 1 979 979 1 # do_execsql_test 5.1.6.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 11 9 NULL 12 10 NULL 13 11 NULL 16 14 NULL 17 15 NULL 18 16 NULL 22 20 NULL 24 22 NULL 25 23 NULL 26 24 NULL 31 27 NULL 34 29 NULL 36 31 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 43 37 NULL 43 37 NULL 49 41 NULL 50 42 NULL 51 43 NULL 54 45 NULL 59 50 NULL 60 51 NULL 61 52 NULL 63 54 NULL 64 55 NULL 64 55 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 72 62 NULL 75 64 NULL 76 65 NULL 78 67 NULL 78 67 NULL 78 67 NULL 84 71 NULL 85 72 NULL 85 72 133 4 3 223 10 8 226 2 2 226 2 2 239 14 12 247 15 13 257 19 17 295 20 18 309 21 19 335 23 21 421 35 30 443 37 32 607 42 36 627 45 38 633 48 40 671 55 46 683 56 47 705 57 48 710 27 25 710 27 25 711 58 49 759 62 53 777 66 56 786 29 26 786 29 26 798 32 28 798 32 28 805 71 61 845 77 66 899 81 68 911 82 69 929 83 70 959 87 73 963 88 74 979 89 75 1258 46 39 1258 46 39 1334 52 44 1334 52 44 1678 73 63 1678 73 63 # do_execsql_test 5.1.8.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 # do_execsql_test 5.1.8.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 # do_execsql_test 5.1.9.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS LAST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 # do_execsql_test 5.1.9.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS LAST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 2050 84 11 2050 84 11 2050 84 11 2050 84 11 2050 84 11 2050 84 11 4997 75 10 4997 75 10 4997 75 10 4997 75 10 4997 75 10 4997 75 10 4997 75 10 4997 75 10 4997 75 10 7337 68 9 7337 68 9 7337 68 9 7337 68 9 7337 68 9 7337 68 9 7337 68 9 10450 59 8 10450 59 8 10450 59 8 10450 59 8 10450 59 8 10450 59 8 10450 59 8 10450 59 8 10450 59 8 11714 51 7 11714 51 7 11714 51 7 11714 51 7 11714 51 7 11714 51 7 11714 51 7 11714 51 7 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 14195 35 5 14195 35 5 14195 35 5 14195 35 5 14195 35 5 15999 28 4 15999 28 4 15999 28 4 15999 28 4 15999 28 4 15999 28 4 15999 28 4 17365 22 3 17365 22 3 17365 22 3 17365 22 3 17365 22 3 17365 22 3 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 # do_execsql_test 5.1.10.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 777 113 5 777 113 5 777 113 5 777 113 5 777 113 5 805 250 7 805 250 7 805 250 7 805 250 7 805 250 7 805 250 7 805 250 7 822 158 6 822 158 6 822 158 6 822 158 6 822 158 6 822 158 6 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 148 8 938 148 8 938 148 8 938 148 8 938 148 8 938 148 8 938 148 8 938 148 8 959 224 7 959 224 7 959 224 7 959 224 7 959 224 7 959 224 7 959 224 7 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9 # do_execsql_test 5.1.10.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1366 1 1 1366 1 1 1366 1 1 1366 1 1 1366 1 1 1366 1 1 1519 1 1 1519 1 1 1519 1 1 1519 1 1 1519 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2340 1 1 2340 1 1 2340 1 1 2340 1 1 2340 1 1 2340 1 1 2340 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 # do_execsql_test 5.1.12.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 2 113 113 2 133 133 1 148 148 1 160 158 2 160 158 2 160 158 2 208 208 1 224 223 2 224 223 2 239 234 3 239 234 3 239 234 3 252 247 3 257 247 5 257 247 5 257 250 4 257 252 3 295 295 1 309 309 1 336 330 3 336 330 3 336 330 3 346 346 1 355 354 2 355 354 2 355 354 2 399 393 4 399 393 4 399 393 4 399 393 4 399 393 4 412 412 1 421 421 1 430 430 1 443 443 1 480 480 2 480 480 2 574 572 2 574 572 2 607 607 1 618 618 2 618 618 2 634 627 4 634 627 4 634 627 4 634 627 4 634 629 3 652 652 1 667 660 2 671 667 3 671 667 3 671 667 3 671 667 3 683 683 1 711 705 2 716 705 3 716 711 2 730 726 2 730 726 2 762 759 2 768 759 4 768 762 3 768 762 3 777 777 1 792 786 3 794 786 4 794 786 4 794 790 3 805 805 1 822 822 1 845 839 5 845 839 5 845 839 5 845 839 5 845 839 5 870 870 2 870 870 2 870 870 2 899 899 1 911 911 1 934 929 2 938 929 4 938 934 3 938 934 3 963 959 2 963 959 2 979 979 1 # do_execsql_test 5.1.12.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 25 23 NULL 34 29 NULL 36 31 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 43 37 NULL 43 37 NULL 50 42 NULL 60 51 NULL 61 52 NULL 64 55 NULL 64 55 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 72 62 NULL 78 67 NULL 78 67 NULL 78 67 NULL 85 72 NULL 85 72 133 4 3 223 10 8 223 11 9 226 2 2 226 2 2 239 12 10 239 13 11 239 14 12 247 15 13 257 18 16 257 19 17 295 20 18 309 21 19 335 22 20 335 23 21 335 24 22 421 35 30 443 37 32 504 16 14 504 17 15 607 42 36 683 56 47 710 26 24 710 27 25 710 27 25 711 59 50 759 62 53 759 63 54 777 66 56 805 71 61 899 81 68 911 82 69 929 83 70 929 84 71 979 89 75 1334 51 43 1416 57 48 1416 58 49 1584 29 26 1584 29 26 1584 31 27 1584 32 28 1584 32 28 1891 49 41 1922 87 73 1922 88 74 2005 52 44 2005 52 44 2005 54 45 2005 55 46 2518 45 38 2518 46 39 2518 46 39 2518 48 40 2523 73 63 2523 73 63 2523 75 64 2523 76 65 2523 77 66 # do_execsql_test 5.1.13.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 2 113 113 2 133 133 1 148 148 1 158 158 1 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 346 346 1 354 354 1 355 355 1 355 355 1 393 393 2 393 393 2 398 398 1 399 399 1 399 399 1 412 412 1 421 421 1 430 430 1 443 443 1 480 480 2 480 480 2 572 572 1 574 574 1 607 607 1 618 618 2 618 618 2 627 627 1 629 629 1 629 629 1 633 633 1 634 634 1 652 652 1 660 660 1 667 667 1 667 667 1 670 670 1 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 730 730 1 759 759 1 762 762 1 768 768 2 768 768 2 777 777 1 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 839 839 2 839 839 2 840 840 1 844 844 1 845 845 1 870 870 2 870 870 2 870 870 2 899 899 1 911 911 1 929 929 1 934 934 1 938 938 2 938 938 2 959 959 1 963 963 1 979 979 1 # do_execsql_test 5.1.13.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE NO OTHERS ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 11 9 NULL 12 10 NULL 13 11 NULL 16 14 NULL 17 15 NULL 18 16 NULL 22 20 NULL 24 22 NULL 25 23 NULL 26 24 NULL 31 27 NULL 34 29 NULL 36 31 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 43 37 NULL 43 37 NULL 49 41 NULL 50 42 NULL 51 43 NULL 54 45 NULL 59 50 NULL 60 51 NULL 61 52 NULL 63 54 NULL 64 55 NULL 64 55 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 72 62 NULL 75 64 NULL 76 65 NULL 78 67 NULL 78 67 NULL 78 67 NULL 84 71 NULL 85 72 NULL 85 72 133 4 3 223 10 8 226 2 2 226 2 2 239 14 12 247 15 13 257 19 17 295 20 18 309 21 19 335 23 21 421 35 30 443 37 32 607 42 36 627 45 38 633 48 40 671 55 46 683 56 47 705 57 48 710 27 25 710 27 25 711 58 49 759 62 53 777 66 56 786 29 26 786 29 26 798 32 28 798 32 28 805 71 61 845 77 66 899 81 68 911 82 69 929 83 70 959 87 73 963 88 74 979 89 75 1258 46 39 1258 46 39 1334 52 44 1334 52 44 1678 73 63 1678 73 63 # do_execsql_test 5.2.1.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 963 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 113 82 # do_execsql_test 5.2.1.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 22176 1 1 22192 1 1 22196 1 1 22226 1 1 22244 1 1 22256 1 1 22310 1 1 22316 1 1 22316 1 1 22350 1 1 22378 1 1 22396 1 1 22444 1 1 22450 1 1 22472 1 1 22484 1 1 22488 1 1 22488 1 1 22522 1 1 22526 1 1 22526 1 1 22528 1 1 22548 1 1 22712 1 1 22734 1 1 22756 1 1 22756 1 1 22762 1 1 22762 1 1 22800 1 1 22800 1 1 22820 1 1 22846 1 1 22860 1 1 22898 1 1 22908 1 1 22916 1 1 22932 1 1 23022 1 1 23042 1 1 23042 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 # do_execsql_test 5.2.2.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS FIRST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 839 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 15 899 113 15 899 113 15 899 113 15 899 113 15 899 113 15 899 113 15 899 234 8 963 113 24 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 48 979 102 48 979 102 48 979 102 48 979 102 48 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 979 102 61 979 102 61 979 102 61 979 102 61 979 102 61 979 102 61 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 113 24 979 113 24 979 113 24 979 113 24 979 113 24 979 113 24 979 113 24 979 113 24 979 113 32 979 113 32 979 113 32 979 113 32 979 113 32 979 113 32 979 113 32 979 113 32 979 113 43 # do_execsql_test 5.2.2.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS FIRST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 2048 81 11 2108 81 11 2108 81 11 2690 81 11 2834 81 11 2947 81 11 2947 81 11 2947 81 11 2947 81 11 4482 74 10 4616 74 10 4844 74 10 4866 74 10 5287 74 10 5287 74 10 5287 74 10 7421 65 9 7437 65 9 7717 65 9 8045 65 9 8267 65 9 8400 65 9 8400 65 9 8400 65 9 8400 65 9 8735 57 8 9329 57 8 9664 57 8 9664 57 8 9664 57 8 9664 57 8 9664 57 8 9664 57 8 9959 46 7 10331 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 11368 41 6 11516 41 6 12032 41 6 12145 41 6 12145 41 6 12990 34 5 13104 34 5 13949 34 5 13949 34 5 13949 34 5 13949 34 5 13949 34 5 14556 28 4 14708 28 4 15315 28 4 15315 28 4 15315 28 4 15315 28 4 18085 15 3 18091 15 3 18163 15 3 18397 15 3 18403 15 3 18403 15 3 18549 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 20194 7 2 20478 7 2 20796 7 2 20866 7 2 20882 7 2 21105 7 2 21105 7 2 21105 7 2 22488 1 1 22526 1 1 22756 1 1 22800 1 1 23155 1 1 23155 1 1 # do_execsql_test 5.2.3.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 667 158 0 671 250 6 759 158 5 768 113 4 777 113 4 777 113 4 777 113 4 777 252 4 792 247 12 805 250 6 805 250 6 805 250 6 805 250 6 805 250 6 805 398 6 822 158 5 822 158 5 822 158 5 822 158 5 822 346 5 839 113 8 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 393 12 845 224 6 870 102 10 870 158 0 870 158 0 870 158 0 870 158 0 870 355 0 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 234 8 911 223 7 929 148 7 934 223 7 934 223 7 934 223 7 934 223 7 934 223 7 934 223 7 934 239 7 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 148 7 938 148 7 938 148 7 938 148 7 938 148 7 938 148 7 938 160 7 938 208 10 959 224 6 959 224 6 959 224 6 959 224 6 959 224 6 959 238 6 963 133 8 979 133 8 979 133 8 979 133 8 979 133 8 979 133 8 979 133 8 979 133 8 979 330 8 # do_execsql_test 5.2.3.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 295 1 1 335 1 1 607 1 1 667 1 1 742 1 1 759 1 1 845 1 1 890 1 1 929 1 1 959 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1366 1 1 1366 1 1 1366 1 1 1366 1 1 1383 1 1 1398 1 1 1406 1 1 1421 1 1 1519 1 1 1519 1 1 1535 1 1 1651 1 1 1669 1 1 1682 1 1 1695 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1897 1 1 1919 1 1 2000 1 1 2048 1 1 2050 1 1 2050 1 1 2070 1 1 2086 1 1 2108 1 1 2108 1 1 2134 1 1 2150 1 1 2309 1 1 2309 1 1 2309 1 1 2340 1 1 2340 1 1 2340 1 1 2430 1 1 2690 1 1 2758 1 1 2770 1 1 2776 1 1 2834 1 1 2848 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2980 1 1 3082 1 1 3088 1 1 3088 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3234 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 # do_execsql_test 5.2.5.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 113 113 1 113 113 1 158 158 1 160 158 1 160 158 2 223 223 1 224 224 1 238 234 2 239 234 2 239 238 2 252 250 2 256 252 2 257 247 4 257 247 4 257 250 3 335 330 2 336 330 2 336 335 2 355 354 1 355 354 2 355 355 1 399 393 3 399 393 3 399 393 3 399 393 3 399 393 4 480 480 1 480 480 1 572 572 1 574 574 1 618 618 1 618 618 1 633 629 2 634 627 3 634 627 3 634 627 4 634 629 3 667 667 1 670 667 2 671 667 2 671 667 2 671 667 3 711 711 1 711 711 1 716 705 2 726 726 1 730 730 1 762 762 1 768 759 3 768 762 2 768 762 2 792 790 2 792 790 2 794 786 3 794 786 3 844 839 4 845 839 4 845 839 4 845 839 4 845 839 4 870 870 1 870 870 1 870 870 2 934 934 1 938 929 3 938 934 2 938 934 2 959 959 1 963 963 1 # do_execsql_test 5.2.5.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 4 3 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 10 8 NULL 14 12 NULL 15 13 NULL 19 17 NULL 20 18 NULL 21 19 NULL 23 21 NULL 25 23 NULL 34 29 NULL 35 30 NULL 36 31 NULL 37 32 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 42 36 NULL 43 37 NULL 43 37 NULL 50 42 NULL 56 47 NULL 60 51 NULL 61 52 NULL 62 53 NULL 64 55 NULL 64 55 NULL 66 56 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 71 61 NULL 72 62 NULL 78 67 NULL 78 67 NULL 78 67 NULL 81 68 NULL 82 69 NULL 83 70 NULL 85 72 NULL 85 72 NULL 89 75 113 2 2 113 2 2 223 11 9 239 12 10 239 13 11 257 18 16 335 22 20 335 24 22 355 27 25 355 27 25 504 16 14 504 17 15 705 58 49 710 26 24 711 57 48 711 59 50 759 63 54 929 84 71 959 88 74 963 87 73 1185 32 28 1185 32 28 1191 29 26 1191 29 26 1334 51 43 1334 55 46 1338 52 44 1338 52 44 1584 31 27 1678 77 66 1684 73 63 1684 73 63 1885 48 40 1889 46 39 1889 46 39 1891 45 38 1891 49 41 2005 54 45 2523 75 64 2523 76 65 # do_execsql_test 5.2.6.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 113 113 1 113 113 1 158 158 0 158 158 1 355 355 0 355 355 1 393 393 1 393 393 1 399 399 0 399 399 1 480 480 1 480 480 1 618 618 1 618 618 1 629 629 0 629 629 1 667 667 0 667 667 1 768 768 1 768 768 1 839 839 1 839 839 1 870 870 1 870 870 1 870 870 2 938 938 1 938 938 1 # do_execsql_test 5.2.6.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 4 3 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 10 8 NULL 11 9 NULL 12 10 NULL 13 11 NULL 14 12 NULL 15 13 NULL 16 14 NULL 17 15 NULL 18 16 NULL 19 17 NULL 20 18 NULL 21 19 NULL 22 20 NULL 23 21 NULL 24 22 NULL 25 23 NULL 26 24 NULL 31 27 NULL 34 29 NULL 35 30 NULL 36 31 NULL 37 32 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 42 36 NULL 43 37 NULL 43 37 NULL 45 38 NULL 48 40 NULL 49 41 NULL 50 42 NULL 51 43 NULL 54 45 NULL 55 46 NULL 56 47 NULL 57 48 NULL 58 49 NULL 59 50 NULL 60 51 NULL 61 52 NULL 62 53 NULL 63 54 NULL 64 55 NULL 64 55 NULL 66 56 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 71 61 NULL 72 62 NULL 75 64 NULL 76 65 NULL 77 66 NULL 78 67 NULL 78 67 NULL 78 67 NULL 81 68 NULL 82 69 NULL 83 70 NULL 84 71 NULL 85 72 NULL 85 72 NULL 87 73 NULL 88 74 NULL 89 75 113 2 2 113 2 2 355 27 25 355 27 25 393 29 26 393 29 26 399 32 28 399 32 28 629 46 39 629 46 39 667 52 44 667 52 44 839 73 63 839 73 63 # do_execsql_test 5.2.8.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 963 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 113 82 # do_execsql_test 5.2.8.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 22176 1 1 22192 1 1 22196 1 1 22226 1 1 22244 1 1 22256 1 1 22310 1 1 22316 1 1 22316 1 1 22350 1 1 22378 1 1 22396 1 1 22444 1 1 22450 1 1 22472 1 1 22484 1 1 22488 1 1 22488 1 1 22522 1 1 22526 1 1 22526 1 1 22528 1 1 22548 1 1 22712 1 1 22734 1 1 22756 1 1 22756 1 1 22762 1 1 22762 1 1 22800 1 1 22800 1 1 22820 1 1 22846 1 1 22860 1 1 22898 1 1 22908 1 1 22916 1 1 22932 1 1 23022 1 1 23042 1 1 23042 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 # do_execsql_test 5.2.9.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS LAST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 667 158 0 870 113 8 870 158 0 870 158 0 870 158 0 870 158 0 870 355 0 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 15 899 113 15 899 113 15 899 113 15 899 113 15 899 113 15 899 113 15 899 158 8 963 113 24 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 48 979 102 48 979 102 48 979 102 48 979 102 48 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 979 102 61 979 102 61 979 102 61 979 102 61 979 102 61 979 102 61 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 113 24 979 113 24 979 113 24 979 113 24 979 113 24 979 113 24 979 113 24 979 113 24 979 113 32 979 113 32 979 113 32 979 113 32 979 113 32 979 113 32 979 113 32 979 113 32 979 113 43 # do_execsql_test 5.2.9.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS LAST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 1383 84 11 1421 84 11 1651 84 11 1695 84 11 2050 84 11 2050 84 11 4098 75 10 4158 75 10 4158 75 10 4740 75 10 4884 75 10 4997 75 10 4997 75 10 4997 75 10 4997 75 10 6532 68 9 6666 68 9 6894 68 9 6916 68 9 7337 68 9 7337 68 9 7337 68 9 9471 59 8 9487 59 8 9767 59 8 10095 59 8 10317 59 8 10450 59 8 10450 59 8 10450 59 8 10450 59 8 10785 51 7 11379 51 7 11714 51 7 11714 51 7 11714 51 7 11714 51 7 11714 51 7 11714 51 7 12009 40 6 12381 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 12676 40 6 13418 35 5 13566 35 5 14082 35 5 14195 35 5 14195 35 5 15040 28 4 15154 28 4 15999 28 4 15999 28 4 15999 28 4 15999 28 4 15999 28 4 16606 22 3 16758 22 3 17365 22 3 17365 22 3 17365 22 3 17365 22 3 20135 9 2 20141 9 2 20213 9 2 20447 9 2 20453 9 2 20453 9 2 20599 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 20846 9 2 22244 1 1 22528 1 1 22846 1 1 22916 1 1 22932 1 1 23155 1 1 23155 1 1 23155 1 1 # do_execsql_test 5.2.10.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 667 158 0 671 250 6 759 158 5 768 113 4 777 113 4 777 113 4 777 113 4 777 252 4 792 247 12 805 250 6 805 250 6 805 250 6 805 250 6 805 250 6 805 398 6 822 158 5 822 158 5 822 158 5 822 158 5 822 346 5 839 113 8 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 393 12 845 224 6 870 102 10 870 158 0 870 158 0 870 158 0 870 158 0 870 355 0 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 234 8 911 223 7 929 148 7 934 223 7 934 223 7 934 223 7 934 223 7 934 223 7 934 223 7 934 239 7 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 148 7 938 148 7 938 148 7 938 148 7 938 148 7 938 148 7 938 160 7 938 208 10 959 224 6 959 224 6 959 224 6 959 224 6 959 224 6 959 238 6 963 133 8 979 133 8 979 133 8 979 133 8 979 133 8 979 133 8 979 133 8 979 133 8 979 330 8 # do_execsql_test 5.2.10.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 295 1 1 335 1 1 607 1 1 667 1 1 742 1 1 759 1 1 845 1 1 890 1 1 929 1 1 959 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1366 1 1 1366 1 1 1366 1 1 1366 1 1 1383 1 1 1398 1 1 1406 1 1 1421 1 1 1519 1 1 1519 1 1 1535 1 1 1651 1 1 1669 1 1 1682 1 1 1695 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1897 1 1 1919 1 1 2000 1 1 2048 1 1 2050 1 1 2050 1 1 2070 1 1 2086 1 1 2108 1 1 2108 1 1 2134 1 1 2150 1 1 2309 1 1 2309 1 1 2309 1 1 2340 1 1 2340 1 1 2340 1 1 2430 1 1 2690 1 1 2758 1 1 2770 1 1 2776 1 1 2834 1 1 2848 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2980 1 1 3082 1 1 3088 1 1 3088 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3234 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 # do_execsql_test 5.2.12.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 113 113 1 113 113 1 158 158 1 160 158 1 160 158 2 223 223 1 224 224 1 238 234 2 239 234 2 239 238 2 252 250 2 256 252 2 257 247 4 257 247 4 257 250 3 335 330 2 336 330 2 336 335 2 355 354 1 355 354 2 355 355 1 399 393 3 399 393 3 399 393 3 399 393 3 399 393 4 480 480 1 480 480 1 572 572 1 574 574 1 618 618 1 618 618 1 633 629 2 634 627 3 634 627 3 634 627 4 634 629 3 667 667 1 670 667 2 671 667 2 671 667 2 671 667 3 711 711 1 711 711 1 716 705 2 726 726 1 730 730 1 762 762 1 768 759 3 768 762 2 768 762 2 792 790 2 792 790 2 794 786 3 794 786 3 844 839 4 845 839 4 845 839 4 845 839 4 845 839 4 870 870 1 870 870 1 870 870 2 934 934 1 938 929 3 938 934 2 938 934 2 959 959 1 963 963 1 # do_execsql_test 5.2.12.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 4 3 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 10 8 NULL 14 12 NULL 15 13 NULL 19 17 NULL 20 18 NULL 21 19 NULL 23 21 NULL 25 23 NULL 34 29 NULL 35 30 NULL 36 31 NULL 37 32 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 42 36 NULL 43 37 NULL 43 37 NULL 50 42 NULL 56 47 NULL 60 51 NULL 61 52 NULL 62 53 NULL 64 55 NULL 64 55 NULL 66 56 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 71 61 NULL 72 62 NULL 78 67 NULL 78 67 NULL 78 67 NULL 81 68 NULL 82 69 NULL 83 70 NULL 85 72 NULL 85 72 NULL 89 75 113 2 2 113 2 2 223 11 9 239 12 10 239 13 11 257 18 16 335 22 20 335 24 22 355 27 25 355 27 25 504 16 14 504 17 15 705 58 49 710 26 24 711 57 48 711 59 50 759 63 54 929 84 71 959 88 74 963 87 73 1185 32 28 1185 32 28 1191 29 26 1191 29 26 1334 51 43 1334 55 46 1338 52 44 1338 52 44 1584 31 27 1678 77 66 1684 73 63 1684 73 63 1885 48 40 1889 46 39 1889 46 39 1891 45 38 1891 49 41 2005 54 45 2523 75 64 2523 76 65 # do_execsql_test 5.2.13.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 113 113 1 113 113 1 158 158 0 158 158 1 355 355 0 355 355 1 393 393 1 393 393 1 399 399 0 399 399 1 480 480 1 480 480 1 618 618 1 618 618 1 629 629 0 629 629 1 667 667 0 667 667 1 768 768 1 768 768 1 839 839 1 839 839 1 870 870 1 870 870 1 870 870 2 938 938 1 938 938 1 # do_execsql_test 5.2.13.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 4 3 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 10 8 NULL 11 9 NULL 12 10 NULL 13 11 NULL 14 12 NULL 15 13 NULL 16 14 NULL 17 15 NULL 18 16 NULL 19 17 NULL 20 18 NULL 21 19 NULL 22 20 NULL 23 21 NULL 24 22 NULL 25 23 NULL 26 24 NULL 31 27 NULL 34 29 NULL 35 30 NULL 36 31 NULL 37 32 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 42 36 NULL 43 37 NULL 43 37 NULL 45 38 NULL 48 40 NULL 49 41 NULL 50 42 NULL 51 43 NULL 54 45 NULL 55 46 NULL 56 47 NULL 57 48 NULL 58 49 NULL 59 50 NULL 60 51 NULL 61 52 NULL 62 53 NULL 63 54 NULL 64 55 NULL 64 55 NULL 66 56 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 71 61 NULL 72 62 NULL 75 64 NULL 76 65 NULL 77 66 NULL 78 67 NULL 78 67 NULL 78 67 NULL 81 68 NULL 82 69 NULL 83 70 NULL 84 71 NULL 85 72 NULL 85 72 NULL 87 73 NULL 88 74 NULL 89 75 113 2 2 113 2 2 355 27 25 355 27 25 393 29 26 393 29 26 399 32 28 399 32 28 629 46 39 629 46 39 667 52 44 667 52 44 839 73 63 839 73 63 # do_execsql_test 5.3.1.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 # do_execsql_test 5.3.1.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 # do_execsql_test 5.3.2.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS FIRST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 # do_execsql_test 5.3.2.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS FIRST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 81 11 NULL 81 11 NULL 81 11 NULL 81 11 NULL 81 11 NULL 81 11 NULL 81 11 NULL 81 11 NULL 81 11 2947 74 10 2947 74 10 2947 74 10 2947 74 10 2947 74 10 2947 74 10 2947 74 10 5287 65 9 5287 65 9 5287 65 9 5287 65 9 5287 65 9 5287 65 9 5287 65 9 5287 65 9 5287 65 9 8400 57 8 8400 57 8 8400 57 8 8400 57 8 8400 57 8 8400 57 8 8400 57 8 8400 57 8 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 10626 41 6 10626 41 6 10626 41 6 10626 41 6 10626 41 6 12145 34 5 12145 34 5 12145 34 5 12145 34 5 12145 34 5 12145 34 5 12145 34 5 13949 28 4 13949 28 4 13949 28 4 13949 28 4 13949 28 4 13949 28 4 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 18796 7 2 18796 7 2 18796 7 2 18796 7 2 18796 7 2 18796 7 2 18796 7 2 18796 7 2 21105 1 1 21105 1 1 21105 1 1 21105 1 1 21105 1 1 21105 1 1 # do_execsql_test 5.3.3.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 # do_execsql_test 5.3.3.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 # do_execsql_test 5.3.5.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 158 158 1 160 160 1 160 160 1 223 223 1 224 224 1 238 234 2 239 234 2 239 238 2 252 250 2 256 252 2 257 247 4 257 247 4 257 250 3 335 330 2 336 330 2 336 335 2 354 354 1 354 354 1 355 355 1 398 393 3 398 393 3 399 393 3 399 398 2 399 398 2 572 572 1 574 574 1 633 629 2 634 627 3 634 627 3 634 627 3 634 629 3 667 667 1 670 667 2 671 667 2 671 670 2 671 670 2 711 711 1 711 711 1 716 705 2 726 726 1 730 730 1 762 762 1 762 762 1 762 762 1 768 759 3 792 790 2 792 790 2 794 786 3 794 786 3 844 839 4 845 839 4 845 839 4 845 840 3 845 840 3 934 934 1 934 934 1 934 934 1 938 929 3 959 959 1 963 963 1 # do_execsql_test 5.3.5.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 2 2 NULL 2 2 NULL 4 3 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 10 8 NULL 14 12 NULL 15 13 NULL 19 17 NULL 20 18 NULL 21 19 NULL 23 21 NULL 25 23 NULL 27 25 NULL 27 25 NULL 34 29 NULL 35 30 NULL 36 31 NULL 37 32 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 42 36 NULL 43 37 NULL 43 37 NULL 50 42 NULL 56 47 NULL 60 51 NULL 61 52 NULL 62 53 NULL 64 55 NULL 64 55 NULL 66 56 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 71 61 NULL 72 62 NULL 78 67 NULL 78 67 NULL 78 67 NULL 81 68 NULL 82 69 NULL 83 70 NULL 85 72 NULL 85 72 NULL 89 75 223 11 9 239 12 10 239 13 11 257 18 16 335 22 20 335 24 22 504 16 14 504 17 15 671 52 44 671 52 44 705 58 49 710 26 24 711 57 48 711 59 50 759 63 54 786 32 28 786 32 28 798 29 26 798 29 26 845 73 63 845 73 63 929 84 71 959 88 74 963 87 73 1260 46 39 1260 46 39 1334 51 43 1334 55 46 1584 31 27 1678 77 66 1885 48 40 1891 45 38 1891 49 41 2005 54 45 2523 75 64 2523 76 65 # do_execsql_test 5.3.6.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 # do_execsql_test 5.3.6.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 2 2 NULL 2 2 NULL 4 3 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 10 8 NULL 11 9 NULL 12 10 NULL 13 11 NULL 14 12 NULL 15 13 NULL 16 14 NULL 17 15 NULL 18 16 NULL 19 17 NULL 20 18 NULL 21 19 NULL 22 20 NULL 23 21 NULL 24 22 NULL 25 23 NULL 26 24 NULL 27 25 NULL 27 25 NULL 29 26 NULL 29 26 NULL 31 27 NULL 32 28 NULL 32 28 NULL 34 29 NULL 35 30 NULL 36 31 NULL 37 32 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 42 36 NULL 43 37 NULL 43 37 NULL 45 38 NULL 46 39 NULL 46 39 NULL 48 40 NULL 49 41 NULL 50 42 NULL 51 43 NULL 52 44 NULL 52 44 NULL 54 45 NULL 55 46 NULL 56 47 NULL 57 48 NULL 58 49 NULL 59 50 NULL 60 51 NULL 61 52 NULL 62 53 NULL 63 54 NULL 64 55 NULL 64 55 NULL 66 56 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 71 61 NULL 72 62 NULL 73 63 NULL 73 63 NULL 75 64 NULL 76 65 NULL 77 66 NULL 78 67 NULL 78 67 NULL 78 67 NULL 81 68 NULL 82 69 NULL 83 70 NULL 84 71 NULL 85 72 NULL 85 72 NULL 87 73 NULL 88 74 NULL 89 75 # do_execsql_test 5.3.8.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 # do_execsql_test 5.3.8.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 # do_execsql_test 5.3.9.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS LAST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 # do_execsql_test 5.3.9.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS LAST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 84 11 NULL 84 11 NULL 84 11 NULL 84 11 NULL 84 11 NULL 84 11 2050 75 10 2050 75 10 2050 75 10 2050 75 10 2050 75 10 2050 75 10 2050 75 10 2050 75 10 2050 75 10 4997 68 9 4997 68 9 4997 68 9 4997 68 9 4997 68 9 4997 68 9 4997 68 9 7337 59 8 7337 59 8 7337 59 8 7337 59 8 7337 59 8 7337 59 8 7337 59 8 7337 59 8 7337 59 8 10450 51 7 10450 51 7 10450 51 7 10450 51 7 10450 51 7 10450 51 7 10450 51 7 10450 51 7 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 12676 35 5 12676 35 5 12676 35 5 12676 35 5 12676 35 5 14195 28 4 14195 28 4 14195 28 4 14195 28 4 14195 28 4 14195 28 4 14195 28 4 15999 22 3 15999 22 3 15999 22 3 15999 22 3 15999 22 3 15999 22 3 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 20846 1 1 20846 1 1 20846 1 1 20846 1 1 20846 1 1 20846 1 1 20846 1 1 20846 1 1 # do_execsql_test 5.3.10.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 # do_execsql_test 5.3.10.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 # do_execsql_test 5.3.12.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 158 158 1 160 160 1 160 160 1 223 223 1 224 224 1 238 234 2 239 234 2 239 238 2 252 250 2 256 252 2 257 247 4 257 247 4 257 250 3 335 330 2 336 330 2 336 335 2 354 354 1 354 354 1 355 355 1 398 393 3 398 393 3 399 393 3 399 398 2 399 398 2 572 572 1 574 574 1 633 629 2 634 627 3 634 627 3 634 627 3 634 629 3 667 667 1 670 667 2 671 667 2 671 670 2 671 670 2 711 711 1 711 711 1 716 705 2 726 726 1 730 730 1 762 762 1 762 762 1 762 762 1 768 759 3 792 790 2 792 790 2 794 786 3 794 786 3 844 839 4 845 839 4 845 839 4 845 840 3 845 840 3 934 934 1 934 934 1 934 934 1 938 929 3 959 959 1 963 963 1 # do_execsql_test 5.3.12.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 2 2 NULL 2 2 NULL 4 3 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 10 8 NULL 14 12 NULL 15 13 NULL 19 17 NULL 20 18 NULL 21 19 NULL 23 21 NULL 25 23 NULL 27 25 NULL 27 25 NULL 34 29 NULL 35 30 NULL 36 31 NULL 37 32 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 42 36 NULL 43 37 NULL 43 37 NULL 50 42 NULL 56 47 NULL 60 51 NULL 61 52 NULL 62 53 NULL 64 55 NULL 64 55 NULL 66 56 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 71 61 NULL 72 62 NULL 78 67 NULL 78 67 NULL 78 67 NULL 81 68 NULL 82 69 NULL 83 70 NULL 85 72 NULL 85 72 NULL 89 75 223 11 9 239 12 10 239 13 11 257 18 16 335 22 20 335 24 22 504 16 14 504 17 15 671 52 44 671 52 44 705 58 49 710 26 24 711 57 48 711 59 50 759 63 54 786 32 28 786 32 28 798 29 26 798 29 26 845 73 63 845 73 63 929 84 71 959 88 74 963 87 73 1260 46 39 1260 46 39 1334 51 43 1334 55 46 1584 31 27 1678 77 66 1885 48 40 1891 45 38 1891 49 41 2005 54 45 2523 75 64 2523 76 65 # do_execsql_test 5.3.13.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 NULL NULL 0 # do_execsql_test 5.3.13.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE GROUP ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 2 2 NULL 2 2 NULL 4 3 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 10 8 NULL 11 9 NULL 12 10 NULL 13 11 NULL 14 12 NULL 15 13 NULL 16 14 NULL 17 15 NULL 18 16 NULL 19 17 NULL 20 18 NULL 21 19 NULL 22 20 NULL 23 21 NULL 24 22 NULL 25 23 NULL 26 24 NULL 27 25 NULL 27 25 NULL 29 26 NULL 29 26 NULL 31 27 NULL 32 28 NULL 32 28 NULL 34 29 NULL 35 30 NULL 36 31 NULL 37 32 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 42 36 NULL 43 37 NULL 43 37 NULL 45 38 NULL 46 39 NULL 46 39 NULL 48 40 NULL 49 41 NULL 50 42 NULL 51 43 NULL 52 44 NULL 52 44 NULL 54 45 NULL 55 46 NULL 56 47 NULL 57 48 NULL 58 49 NULL 59 50 NULL 60 51 NULL 61 52 NULL 62 53 NULL 63 54 NULL 64 55 NULL 64 55 NULL 66 56 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 71 61 NULL 72 62 NULL 73 63 NULL 73 63 NULL 75 64 NULL 76 65 NULL 77 66 NULL 78 67 NULL 78 67 NULL 78 67 NULL 81 68 NULL 82 69 NULL 83 70 NULL 84 71 NULL 85 72 NULL 85 72 NULL 87 73 NULL 88 74 NULL 89 75 # do_execsql_test 5.4.1.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 158 158 0 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 346 346 1 354 354 1 355 355 0 355 355 1 393 393 1 393 393 1 398 398 1 399 399 0 399 399 1 412 412 1 421 421 1 430 430 1 443 443 1 480 480 1 480 480 1 572 572 1 574 574 1 607 607 1 618 618 1 618 618 1 627 627 1 629 629 0 629 629 1 633 633 1 634 634 1 652 652 1 660 660 1 667 667 0 667 667 1 670 670 1 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 730 730 1 759 759 1 762 762 1 768 768 1 768 768 1 777 777 1 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 839 839 1 839 839 1 840 840 1 844 844 1 845 845 1 870 870 0 870 870 1 870 870 1 899 899 1 911 911 1 929 929 1 934 934 1 938 938 1 938 938 1 959 959 1 963 963 1 979 979 1 # do_execsql_test 5.4.1.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 113 1 1 113 1 1 133 1 1 223 1 1 239 1 1 247 1 1 257 1 1 295 1 1 309 1 1 335 1 1 355 1 1 355 1 1 393 1 1 393 1 1 399 1 1 399 1 1 421 1 1 443 1 1 607 1 1 627 1 1 629 1 1 629 1 1 633 1 1 667 1 1 667 1 1 671 1 1 683 1 1 705 1 1 711 1 1 759 1 1 777 1 1 805 1 1 839 1 1 839 1 1 845 1 1 899 1 1 911 1 1 929 1 1 959 1 1 963 1 1 979 1 1 # do_execsql_test 5.4.2.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS FIRST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 113 113 1 234 234 1 257 257 1 336 336 1 354 354 1 768 768 1 839 839 1 839 839 1 899 113 10 899 113 10 899 113 10 899 113 10 899 113 10 899 113 10 899 113 10 899 113 17 899 113 17 899 113 17 899 113 17 899 113 17 899 113 17 899 113 17 899 899 1 963 113 17 979 102 34 979 102 45 979 102 45 979 102 45 979 102 45 979 102 45 979 102 50 979 102 50 979 102 50 979 102 50 979 102 50 979 102 50 979 102 50 979 102 57 979 102 57 979 102 57 979 102 57 979 102 57 979 102 57 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 76 979 102 76 979 102 76 979 102 76 979 102 76 979 102 76 979 102 76 979 102 76 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 113 17 979 113 26 979 113 26 979 113 26 979 113 26 979 113 26 979 113 26 979 113 26 979 113 26 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 # do_execsql_test 5.4.2.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS FIRST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 81 11 NULL 81 11 NULL 81 11 NULL 81 11 113 81 11 257 81 11 839 81 11 839 81 11 899 81 11 2947 74 10 2947 74 10 2947 74 10 3368 74 10 3390 74 10 3618 74 10 3752 74 10 5287 65 9 5287 65 9 5287 65 9 5287 65 9 5420 65 9 5642 65 9 5970 65 9 6250 65 9 6266 65 9 8400 57 8 8400 57 8 8400 57 8 8400 57 8 8400 57 8 8400 57 8 8735 57 8 9329 57 8 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9959 46 7 10331 46 7 10626 41 6 10626 41 6 10739 41 6 11255 41 6 11403 41 6 12145 34 5 12145 34 5 12145 34 5 12145 34 5 12145 34 5 12990 34 5 13104 34 5 13949 28 4 13949 28 4 13949 28 4 13949 28 4 14556 28 4 14708 28 4 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15562 15 3 15708 15 3 15708 15 3 15714 15 3 15948 15 3 16020 15 3 16026 15 3 18796 7 2 18796 7 2 18796 7 2 19019 7 2 19035 7 2 19105 7 2 19423 7 2 19707 7 2 21105 1 1 21105 1 1 21460 1 1 21504 1 1 21734 1 1 21772 1 1 # do_execsql_test 5.4.3.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 158 158 0 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 346 346 1 354 354 1 355 355 0 355 355 1 393 393 1 393 393 1 398 398 1 399 399 0 399 399 1 412 412 1 421 421 1 430 430 1 443 443 1 480 480 1 480 480 1 572 572 1 574 574 1 607 607 1 618 618 1 618 618 1 627 627 1 629 629 0 629 629 1 633 633 1 634 634 1 652 652 1 660 660 1 667 667 0 667 667 1 670 670 1 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 730 730 1 759 759 1 762 762 1 768 768 1 768 768 1 777 777 1 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 839 839 1 839 839 1 840 840 1 844 844 1 845 845 1 870 870 0 870 870 1 870 870 1 899 899 1 911 911 1 929 929 1 934 934 1 938 938 1 938 938 1 959 959 1 963 963 1 979 979 1 # do_execsql_test 5.4.3.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 113 1 1 113 1 1 133 1 1 223 1 1 239 1 1 247 1 1 257 1 1 295 1 1 309 1 1 335 1 1 355 1 1 355 1 1 393 1 1 393 1 1 399 1 1 399 1 1 421 1 1 443 1 1 607 1 1 627 1 1 629 1 1 629 1 1 633 1 1 667 1 1 667 1 1 671 1 1 683 1 1 705 1 1 711 1 1 759 1 1 777 1 1 805 1 1 839 1 1 839 1 1 845 1 1 899 1 1 911 1 1 929 1 1 959 1 1 963 1 1 979 1 1 # do_execsql_test 5.4.5.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 160 158 1 160 158 2 160 158 2 208 208 1 224 223 2 224 223 2 239 234 3 239 234 3 239 234 3 252 247 3 257 247 5 257 247 5 257 250 4 257 252 3 295 295 1 309 309 1 336 330 3 336 330 3 336 330 3 346 346 1 355 354 1 355 354 2 355 354 2 399 393 3 399 393 3 399 393 3 399 393 4 399 393 4 412 412 1 421 421 1 430 430 1 443 443 1 480 480 1 480 480 1 574 572 2 574 572 2 607 607 1 618 618 1 618 618 1 634 627 3 634 627 4 634 627 4 634 627 4 634 629 3 652 652 1 667 660 2 671 667 2 671 667 3 671 667 3 671 667 3 683 683 1 711 705 2 716 705 3 716 711 2 730 726 2 730 726 2 762 759 2 768 759 4 768 762 2 768 762 2 777 777 1 792 786 3 794 786 4 794 786 4 794 790 3 805 805 1 822 822 1 845 839 4 845 839 4 845 839 5 845 839 5 845 839 5 870 870 0 870 870 1 870 870 1 899 899 1 911 911 1 934 929 2 938 929 4 938 934 2 938 934 2 963 959 2 963 959 2 979 979 1 # do_execsql_test 5.4.5.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 25 23 NULL 34 29 NULL 36 31 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 43 37 NULL 43 37 NULL 50 42 NULL 60 51 NULL 61 52 NULL 64 55 NULL 64 55 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 72 62 NULL 78 67 NULL 78 67 NULL 78 67 NULL 85 72 NULL 85 72 113 2 2 113 2 2 133 4 3 223 10 8 223 11 9 239 12 10 239 13 11 239 14 12 247 15 13 257 18 16 257 19 17 295 20 18 309 21 19 335 22 20 335 23 21 335 24 22 355 27 25 355 27 25 421 35 30 443 37 32 504 16 14 504 17 15 607 42 36 683 56 47 710 26 24 711 59 50 759 62 53 759 63 54 777 66 56 805 71 61 899 81 68 911 82 69 929 83 70 929 84 71 979 89 75 1185 32 28 1185 32 28 1191 29 26 1191 29 26 1334 51 43 1338 52 44 1338 52 44 1416 57 48 1416 58 49 1584 31 27 1684 73 63 1684 73 63 1889 46 39 1889 46 39 1891 49 41 1922 87 73 1922 88 74 2005 54 45 2005 55 46 2518 45 38 2518 48 40 2523 75 64 2523 76 65 2523 77 66 # do_execsql_test 5.4.6.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 158 158 0 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 346 346 1 354 354 1 355 355 0 355 355 1 393 393 1 393 393 1 398 398 1 399 399 0 399 399 1 412 412 1 421 421 1 430 430 1 443 443 1 480 480 1 480 480 1 572 572 1 574 574 1 607 607 1 618 618 1 618 618 1 627 627 1 629 629 0 629 629 1 633 633 1 634 634 1 652 652 1 660 660 1 667 667 0 667 667 1 670 670 1 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 730 730 1 759 759 1 762 762 1 768 768 1 768 768 1 777 777 1 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 839 839 1 839 839 1 840 840 1 844 844 1 845 845 1 870 870 0 870 870 1 870 870 1 899 899 1 911 911 1 929 929 1 934 934 1 938 938 1 938 938 1 959 959 1 963 963 1 979 979 1 # do_execsql_test 5.4.6.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 11 9 NULL 12 10 NULL 13 11 NULL 16 14 NULL 17 15 NULL 18 16 NULL 22 20 NULL 24 22 NULL 25 23 NULL 26 24 NULL 31 27 NULL 34 29 NULL 36 31 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 43 37 NULL 43 37 NULL 49 41 NULL 50 42 NULL 51 43 NULL 54 45 NULL 59 50 NULL 60 51 NULL 61 52 NULL 63 54 NULL 64 55 NULL 64 55 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 72 62 NULL 75 64 NULL 76 65 NULL 78 67 NULL 78 67 NULL 78 67 NULL 84 71 NULL 85 72 NULL 85 72 113 2 2 113 2 2 133 4 3 223 10 8 239 14 12 247 15 13 257 19 17 295 20 18 309 21 19 335 23 21 355 27 25 355 27 25 393 29 26 393 29 26 399 32 28 399 32 28 421 35 30 443 37 32 607 42 36 627 45 38 629 46 39 629 46 39 633 48 40 667 52 44 667 52 44 671 55 46 683 56 47 705 57 48 711 58 49 759 62 53 777 66 56 805 71 61 839 73 63 839 73 63 845 77 66 899 81 68 911 82 69 929 83 70 959 87 73 963 88 74 979 89 75 # do_execsql_test 5.4.8.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 158 158 0 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 346 346 1 354 354 1 355 355 0 355 355 1 393 393 1 393 393 1 398 398 1 399 399 0 399 399 1 412 412 1 421 421 1 430 430 1 443 443 1 480 480 1 480 480 1 572 572 1 574 574 1 607 607 1 618 618 1 618 618 1 627 627 1 629 629 0 629 629 1 633 633 1 634 634 1 652 652 1 660 660 1 667 667 0 667 667 1 670 670 1 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 730 730 1 759 759 1 762 762 1 768 768 1 768 768 1 777 777 1 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 839 839 1 839 839 1 840 840 1 844 844 1 845 845 1 870 870 0 870 870 1 870 870 1 899 899 1 911 911 1 929 929 1 934 934 1 938 938 1 938 938 1 959 959 1 963 963 1 979 979 1 # do_execsql_test 5.4.8.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 113 1 1 113 1 1 133 1 1 223 1 1 239 1 1 247 1 1 257 1 1 295 1 1 309 1 1 335 1 1 355 1 1 355 1 1 393 1 1 393 1 1 399 1 1 399 1 1 421 1 1 443 1 1 607 1 1 627 1 1 629 1 1 629 1 1 633 1 1 667 1 1 667 1 1 671 1 1 683 1 1 705 1 1 711 1 1 759 1 1 777 1 1 805 1 1 839 1 1 839 1 1 845 1 1 899 1 1 911 1 1 929 1 1 959 1 1 963 1 1 979 1 1 # do_execsql_test 5.4.9.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS LAST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 158 158 0 355 355 0 399 399 0 629 629 0 667 667 0 870 113 1 870 158 1 870 158 1 870 158 1 870 158 1 870 158 1 870 158 1 870 158 1 870 870 0 899 113 10 899 113 10 899 113 10 899 113 10 899 113 10 899 113 10 899 113 10 899 113 17 899 113 17 899 113 17 899 113 17 899 113 17 899 113 17 899 113 17 899 158 1 963 113 17 979 102 34 979 102 45 979 102 45 979 102 45 979 102 45 979 102 45 979 102 50 979 102 50 979 102 50 979 102 50 979 102 50 979 102 50 979 102 50 979 102 57 979 102 57 979 102 57 979 102 57 979 102 57 979 102 57 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 76 979 102 76 979 102 76 979 102 76 979 102 76 979 102 76 979 102 76 979 102 76 979 113 17 979 113 26 979 113 26 979 113 26 979 113 26 979 113 26 979 113 26 979 113 26 979 113 26 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 # do_execsql_test 5.4.9.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY a NULLS LAST RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 84 11 NULL 84 11 355 84 11 399 84 11 629 84 11 667 84 11 2050 75 10 2050 75 10 2050 75 10 2050 75 10 2163 75 10 2307 75 10 2889 75 10 2889 75 10 2949 75 10 4997 68 9 4997 68 9 4997 68 9 5418 68 9 5440 68 9 5668 68 9 5802 68 9 7337 59 8 7337 59 8 7337 59 8 7337 59 8 7470 59 8 7692 59 8 8020 59 8 8300 59 8 8316 59 8 10450 51 7 10450 51 7 10450 51 7 10450 51 7 10450 51 7 10450 51 7 10785 51 7 11379 51 7 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 11714 40 6 12009 40 6 12381 40 6 12676 35 5 12676 35 5 12789 35 5 13305 35 5 13453 35 5 14195 28 4 14195 28 4 14195 28 4 14195 28 4 14195 28 4 15040 28 4 15154 28 4 15999 22 3 15999 22 3 15999 22 3 15999 22 3 16606 22 3 16758 22 3 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17365 9 2 17612 9 2 17758 9 2 17758 9 2 17764 9 2 17998 9 2 18070 9 2 18076 9 2 20846 1 1 20846 1 1 20846 1 1 21069 1 1 21085 1 1 21155 1 1 21473 1 1 21757 1 1 # do_execsql_test 5.4.10.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 158 158 0 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 346 346 1 354 354 1 355 355 0 355 355 1 393 393 1 393 393 1 398 398 1 399 399 0 399 399 1 412 412 1 421 421 1 430 430 1 443 443 1 480 480 1 480 480 1 572 572 1 574 574 1 607 607 1 618 618 1 618 618 1 627 627 1 629 629 0 629 629 1 633 633 1 634 634 1 652 652 1 660 660 1 667 667 0 667 667 1 670 670 1 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 730 730 1 759 759 1 762 762 1 768 768 1 768 768 1 777 777 1 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 839 839 1 839 839 1 840 840 1 844 844 1 845 845 1 870 870 0 870 870 1 870 870 1 899 899 1 911 911 1 929 929 1 934 934 1 938 938 1 938 938 1 959 959 1 963 963 1 979 979 1 # do_execsql_test 5.4.10.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( PARTITION BY coalesce(a, '') RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 NULL 1 1 113 1 1 113 1 1 133 1 1 223 1 1 239 1 1 247 1 1 257 1 1 295 1 1 309 1 1 335 1 1 355 1 1 355 1 1 393 1 1 393 1 1 399 1 1 399 1 1 421 1 1 443 1 1 607 1 1 627 1 1 629 1 1 629 1 1 633 1 1 667 1 1 667 1 1 671 1 1 683 1 1 705 1 1 711 1 1 759 1 1 777 1 1 805 1 1 839 1 1 839 1 1 845 1 1 899 1 1 911 1 1 929 1 1 959 1 1 963 1 1 979 1 1 # do_execsql_test 5.4.12.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 160 158 1 160 158 2 160 158 2 208 208 1 224 223 2 224 223 2 239 234 3 239 234 3 239 234 3 252 247 3 257 247 5 257 247 5 257 250 4 257 252 3 295 295 1 309 309 1 336 330 3 336 330 3 336 330 3 346 346 1 355 354 1 355 354 2 355 354 2 399 393 3 399 393 3 399 393 3 399 393 4 399 393 4 412 412 1 421 421 1 430 430 1 443 443 1 480 480 1 480 480 1 574 572 2 574 572 2 607 607 1 618 618 1 618 618 1 634 627 3 634 627 4 634 627 4 634 627 4 634 629 3 652 652 1 667 660 2 671 667 2 671 667 3 671 667 3 671 667 3 683 683 1 711 705 2 716 705 3 716 711 2 730 726 2 730 726 2 762 759 2 768 759 4 768 762 2 768 762 2 777 777 1 792 786 3 794 786 4 794 786 4 794 790 3 805 805 1 822 822 1 845 839 4 845 839 4 845 839 5 845 839 5 845 839 5 870 870 0 870 870 1 870 870 1 899 899 1 911 911 1 934 929 2 938 929 4 938 934 2 938 934 2 963 959 2 963 959 2 979 979 1 # do_execsql_test 5.4.12.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 25 23 NULL 34 29 NULL 36 31 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 43 37 NULL 43 37 NULL 50 42 NULL 60 51 NULL 61 52 NULL 64 55 NULL 64 55 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 72 62 NULL 78 67 NULL 78 67 NULL 78 67 NULL 85 72 NULL 85 72 113 2 2 113 2 2 133 4 3 223 10 8 223 11 9 239 12 10 239 13 11 239 14 12 247 15 13 257 18 16 257 19 17 295 20 18 309 21 19 335 22 20 335 23 21 335 24 22 355 27 25 355 27 25 421 35 30 443 37 32 504 16 14 504 17 15 607 42 36 683 56 47 710 26 24 711 59 50 759 62 53 759 63 54 777 66 56 805 71 61 899 81 68 911 82 69 929 83 70 929 84 71 979 89 75 1185 32 28 1185 32 28 1191 29 26 1191 29 26 1334 51 43 1338 52 44 1338 52 44 1416 57 48 1416 58 49 1584 31 27 1684 73 63 1684 73 63 1889 46 39 1889 46 39 1891 49 41 1922 87 73 1922 88 74 2005 54 45 2005 55 46 2518 45 38 2518 48 40 2523 75 64 2523 76 65 2523 77 66 # do_execsql_test 5.4.13.1 query III SELECT max(c) OVER win, min(c) OVER win, count(a) OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- 102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 158 158 0 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 346 346 1 354 354 1 355 355 0 355 355 1 393 393 1 393 393 1 398 398 1 399 399 0 399 399 1 412 412 1 421 421 1 430 430 1 443 443 1 480 480 1 480 480 1 572 572 1 574 574 1 607 607 1 618 618 1 618 618 1 627 627 1 629 629 0 629 629 1 633 633 1 634 634 1 652 652 1 660 660 1 667 667 0 667 667 1 670 670 1 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 730 730 1 759 759 1 762 762 1 768 768 1 768 768 1 777 777 1 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 839 839 1 839 839 1 840 840 1 844 844 1 845 845 1 870 870 0 870 870 1 870 870 1 899 899 1 911 911 1 929 929 1 934 934 1 938 938 1 938 938 1 959 959 1 963 963 1 979 979 1 # do_execsql_test 5.4.13.2 query III SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, rank() OVER win, dense_rank() OVER win FROM t3 WINDOW win AS ( ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE TIES ) ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST ---- NULL 1 1 NULL 5 4 NULL 6 5 NULL 6 5 NULL 8 6 NULL 9 7 NULL 11 9 NULL 12 10 NULL 13 11 NULL 16 14 NULL 17 15 NULL 18 16 NULL 22 20 NULL 24 22 NULL 25 23 NULL 26 24 NULL 31 27 NULL 34 29 NULL 36 31 NULL 38 33 NULL 38 33 NULL 40 34 NULL 41 35 NULL 43 37 NULL 43 37 NULL 49 41 NULL 50 42 NULL 51 43 NULL 54 45 NULL 59 50 NULL 60 51 NULL 61 52 NULL 63 54 NULL 64 55 NULL 64 55 NULL 67 57 NULL 68 58 NULL 69 59 NULL 70 60 NULL 72 62 NULL 75 64 NULL 76 65 NULL 78 67 NULL 78 67 NULL 78 67 NULL 84 71 NULL 85 72 NULL 85 72 113 2 2 113 2 2 133 4 3 223 10 8 239 14 12 247 15 13 257 19 17 295 20 18 309 21 19 335 23 21 355 27 25 355 27 25 393 29 26 393 29 26 399 32 28 399 32 28 421 35 30 443 37 32 607 42 36 627 45 38 629 46 39 629 46 39 633 48 40 667 52 44 667 52 44 671 55 46 683 56 47 705 57 48 711 58 49 759 62 53 777 66 56 805 71 61 839 73 63 839 73 63 845 77 66 899 81 68 911 82 69 929 83 70 959 87 73 963 88 74 979 89 75 #========================================================================== # do_execsql_test 6.0 statement ok DROP TABLE IF EXISTS t2; statement ok CREATE TABLE t2(a TEXT, b INTEGER); statement ok INSERT INTO t2 VALUES('A', NULL); statement ok INSERT INTO t2 VALUES('B', NULL); statement ok INSERT INTO t2 VALUES('C', 1); # do_execsql_test 6.1 query I SELECT group_concat(a, '.') OVER ( ORDER BY b NULLS FIRST RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING ) FROM t2 ---- A.B A.B NULL # do_execsql_test 6.2 query I SELECT group_concat(a, '.') OVER ( ORDER BY b DESC NULLS LAST RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING ) FROM t2 ---- NULL A.B A.B #========================================================================== # do_execsql_test 7.0 statement ok DROP TABLE IF EXISTS t2; statement ok CREATE TABLE t2(a INTEGER, b INTEGER); statement ok INSERT INTO t2 VALUES(1, 65); statement ok INSERT INTO t2 VALUES(2, NULL); statement ok INSERT INTO t2 VALUES(3, NULL); statement ok INSERT INTO t2 VALUES(4, NULL); statement ok INSERT INTO t2 VALUES(5, 66); statement ok INSERT INTO t2 VALUES(6, 67); # do_execsql_test 7.1.1 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING ); ---- 9 9 9 9 9 9 # do_execsql_test 7.1.2 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING ); ---- NULL NULL NULL 9 9 9 # do_execsql_test 7.1.3 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING ); ---- NULL NULL NULL 9 9 9 # do_execsql_test 7.1.4 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING ); ---- 9 9 9 NULL NULL NULL # do_execsql_test 7.1.5 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING ); ---- 9 9 9 NULL NULL NULL # do_execsql_test 7.1.6 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 1000 PRECEDING AND 2 PRECEDING ); ---- NULL NULL 1 9 9 9 # do_execsql_test 7.1.7 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING ); ---- NULL NULL NULL 9 9 9 # do_execsql_test 7.1.8 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 1000 PRECEDING AND 2000 PRECEDING ); ---- 9 9 9 NULL NULL NULL # do_execsql_test 7.1.9 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING ); ---- 9 9 9 NULL NULL NULL # do_execsql_test 7.2.1 query I SELECT min (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING ); ---- 2 2 2 2 2 2 # do_execsql_test 7.2.2 query I SELECT min (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING ); ---- NULL NULL NULL 2 2 2 # do_execsql_test 7.2.3 query I SELECT min (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING ); ---- NULL NULL NULL 2 2 2 # do_execsql_test 7.2.4 query I SELECT min (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING ); ---- 2 2 2 NULL NULL NULL # do_execsql_test 7.2.5 query I SELECT min (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING ); ---- 2 2 2 NULL NULL NULL # do_execsql_test 7.2.6 query I SELECT min (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 1000 PRECEDING AND 2 PRECEDING ); ---- NULL NULL 1 2 2 2 # do_execsql_test 7.2.7 query I SELECT min (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING ); ---- NULL NULL NULL 2 2 2 # do_execsql_test 7.2.8 query I SELECT min (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 1000 PRECEDING AND 2000 PRECEDING ); ---- 2 2 2 NULL NULL NULL # do_execsql_test 7.2.9 query I SELECT min (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING ); ---- 2 2 2 NULL NULL NULL # do_execsql_test 7.3.1 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING ); ---- 9 9 9 9 9 9 # do_execsql_test 7.3.2 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING ); ---- NULL NULL NULL 9 9 9 # do_execsql_test 7.3.3 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING ); ---- NULL NULL NULL 9 9 9 # do_execsql_test 7.3.4 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING ); ---- 9 9 9 NULL NULL NULL # do_execsql_test 7.3.5 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING ); ---- 9 9 9 NULL NULL NULL # do_execsql_test 7.3.6 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 1000 PRECEDING AND 2 PRECEDING ); ---- NULL NULL 1 9 9 9 # do_execsql_test 7.3.7 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING ); ---- NULL NULL NULL 9 9 9 # do_execsql_test 7.3.8 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 1000 PRECEDING AND 2000 PRECEDING ); ---- 9 9 9 NULL NULL NULL # do_execsql_test 7.3.9 query I SELECT sum (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING ); ---- 9 9 9 NULL NULL NULL # do_execsql_test 7.4.1 query I SELECT max (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING ); ---- 4 4 4 4 4 4 # do_execsql_test 7.4.2 query I SELECT max (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING ); ---- NULL NULL NULL 4 4 4 # do_execsql_test 7.4.3 query I SELECT max (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING ); ---- NULL NULL NULL 4 4 4 # do_execsql_test 7.4.4 query I SELECT max (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING ); ---- 4 4 4 NULL NULL NULL # do_execsql_test 7.4.5 query I SELECT max (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING ); ---- 4 4 4 NULL NULL NULL # do_execsql_test 7.4.6 query I SELECT max (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 1000 PRECEDING AND 2 PRECEDING ); ---- NULL NULL 1 4 4 4 # do_execsql_test 7.4.7 query I SELECT max (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS LAST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING ); ---- NULL NULL NULL 4 4 4 # do_execsql_test 7.4.8 query I SELECT max (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 1000 PRECEDING AND 2000 PRECEDING ); ---- 4 4 4 NULL NULL NULL # do_execsql_test 7.4.9 query I SELECT max (a) OVER win FROM t2 WINDOW win AS ( ORDER BY b NULLS FIRST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING ); ---- 4 4 4 NULL NULL NULL # Zero preceding query II SELECT x, SUM(x) OVER ( ORDER BY x RANGE BETWEEN 5 PRECEDING AND 0 PRECEDING ) AS y FROM generate_series(1, 10) tbl(x); ---- 1 1 2 3 3 6 4 10 5 15 6 21 7 27 8 33 9 39 10 45 #========================================================================== statement ok DROP TABLE IF EXISTS tx; statement ok CREATE TABLE tx(a INTEGER PRIMARY KEY); statement ok INSERT INTO tx VALUES(1), (2), (3), (4), (5), (6); statement ok DROP TABLE IF EXISTS map; statement ok CREATE TABLE map(v INTEGER PRIMARY KEY, t TEXT); statement ok INSERT INTO map VALUES (1, 'odd'), (2, 'even'), (3, 'odd'), (4, 'even'), (5, 'odd'), (6, 'even'); query I SELECT sum(a) OVER ( PARTITION BY ( SELECT t FROM map WHERE v=a ) ORDER BY a ) FROM tx ORDER BY ALL; ---- 1 2 4 6 9 12 query I SELECT sum(a) OVER win FROM tx WINDOW win AS ( PARTITION BY ( SELECT t FROM map WHERE v=a ) ORDER BY a ) ORDER BY ALL; ---- 1 2 4 6 9 12 query I WITH map2 AS ( SELECT * FROM map ) SELECT sum(a) OVER ( PARTITION BY ( SELECT t FROM map2 WHERE v=a ) ORDER BY a ) FROM tx ORDER BY ALL; ---- 1 2 4 6 9 12 query I WITH map2 AS ( SELECT * FROM map ) SELECT sum(a) OVER win FROM tx WINDOW win AS ( PARTITION BY ( SELECT t FROM map2 WHERE v=a ) ORDER BY a ) ORDER BY ALL; ---- 1 2 4 6 9 12 #========================================================================== statement ok DROP TABLE IF EXISTS t1; statement ok DROP TABLE IF EXISTS t2; statement ok CREATE TABLE t1(a INTEGER); statement ok CREATE TABLE t2(y INTEGER); # Binder Error: correlated columns in window functions not supported statement error SELECT ( SELECT max(a) OVER ( ORDER BY (SELECT sum(a) FROM t1) ) + min(a) OVER() ) FROM t1 ---- #========================================================================== # Reverse bitmask scanning query II SELECT b, sum(b) OVER ( ORDER BY a NULLS LAST RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING ) FROM ( SELECT CASE WHEN b < 70 THEN NULL ELSE 10 END AS a, b FROM range(1, 129) tbl(b) ) t1 ORDER BY 1; ---- 1 8256 2 8256 3 8256 4 8256 5 8256 6 8256 7 8256 8 8256 9 8256 10 8256 11 8256 12 8256 13 8256 14 8256 15 8256 16 8256 17 8256 18 8256 19 8256 20 8256 21 8256 22 8256 23 8256 24 8256 25 8256 26 8256 27 8256 28 8256 29 8256 30 8256 31 8256 32 8256 33 8256 34 8256 35 8256 36 8256 37 8256 38 8256 39 8256 40 8256 41 8256 42 8256 43 8256 44 8256 45 8256 46 8256 47 8256 48 8256 49 8256 50 8256 51 8256 52 8256 53 8256 54 8256 55 8256 56 8256 57 8256 58 8256 59 8256 60 8256 61 8256 62 8256 63 8256 64 8256 65 8256 66 8256 67 8256 68 8256 69 8256 70 5841 71 5841 72 5841 73 5841 74 5841 75 5841 76 5841 77 5841 78 5841 79 5841 80 5841 81 5841 82 5841 83 5841 84 5841 85 5841 86 5841 87 5841 88 5841 89 5841 90 5841 91 5841 92 5841 93 5841 94 5841 95 5841 96 5841 97 5841 98 5841 99 5841 100 5841 101 5841 102 5841 103 5841 104 5841 105 5841 106 5841 107 5841 108 5841 109 5841 110 5841 111 5841 112 5841 113 5841 114 5841 115 5841 116 5841 117 5841 118 5841 119 5841 120 5841 121 5841 122 5841 123 5841 124 5841 125 5841 126 5841 127 5841 128 5841