Files
email-tracker/external/duckdb/test/sql/window/test_window_range.test
2025-10-24 19:21:19 -05:00

9316 lines
117 KiB
SQL

# 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 <numeric>
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