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

2787 lines
33 KiB
SQL

# name: test/sql/window/test_window_rows.test
# description: ROWS functionality tests. Taken from sqlite test/window8.test
# group: [window]
statement ok
PRAGMA enable_verification
# 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 2.1.1
query I
SELECT row_number() OVER win
FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS
)
----
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# do_execsql_test 2.1.2
query I
SELECT nth_value(c, 14) OVER win
FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS
)
----
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
# do_execsql_test 2.1.3
query III
SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS
) ORDER BY a, b, c;
----
102 223 1358
102 239 2293
102 911 38097
102 934 39960
102 309 4159
102 572 10643
102 627 13069
102 870 35417
102 247 2540
102 393 6608
102 399 7405
102 412 7817
102 660 16277
102 762 24077
102 633 14331
102 705 19673
102 711 20384
102 786 27176
102 792 28758
102 840 32858
102 158 767
102 430 8668
102 607 11824
102 759 23315
102 346 5506
102 822 31179
102 224 1582
102 256 3298
102 845 34547
102 238 2054
102 716 21100
102 794 29552
102 959 42795
102 113 215
102 777 26390
102 252 3042
102 629 13698
102 768 25613
102 208 1135
102 618 12442
102 667 16944
102 670 17614
102 102 102
102 295 3850
102 574 11217
102 726 21826
102 870 36287
102 938 40898
102 148 609
102 335 4824
102 480 9591
102 634 14965
102 160 927
102 844 33702
102 929 39026
102 938 41836
102 480 10071
102 790 27966
102 979 44737
102 133 461
102 330 4489
102 355 6215
102 683 18968
102 730 22556
102 963 43758
102 398 7006
102 652 15617
102 250 2790
102 421 8238
102 443 9111
102 671 18285
102 805 30357
102 113 328
102 234 1816
102 768 24845
102 899 37186
102 257 3555
102 336 5160
102 354 5860
102 839 32018
# do_execsql_test 2.2.1
query I
SELECT row_number() OVER win
FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW
)
----
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# do_execsql_test 2.2.2
query I
SELECT nth_value(c, 14) OVER win
FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW
)
----
250
250
250
250
250
250
250
250
250
250
250
250
250
250
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
# do_execsql_test 2.2.3
query III
SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW
) ORDER BY a, b, c;
----
102 208 1135
102 238 2054
102 899 37186
102 929 39026
102 295 3850
102 480 10071
102 618 12442
102 845 34547
102 239 2293
102 355 6215
102 398 7006
102 399 7405
102 652 15617
102 759 23315
102 629 13698
102 683 18968
102 705 19673
102 777 26390
102 790 27966
102 839 32018
102 148 609
102 421 8238
102 574 11217
102 730 22556
102 336 5160
102 805 30357
102 223 1358
102 252 3042
102 844 33702
102 234 1816
102 711 20384
102 792 28758
102 938 41836
102 102 102
102 768 25613
102 250 2790
102 627 13069
102 768 24845
102 160 927
102 607 11824
102 660 16277
102 667 16944
NULL NULL NULL
102 257 3555
102 572 10643
102 716 21100
102 870 35417
102 934 39960
102 133 461
102 330 4489
102 443 9111
102 633 14331
102 158 767
102 840 32858
102 911 38097
102 938 40898
102 480 9591
102 786 27176
102 963 43758
102 113 328
102 309 4159
102 354 5860
102 671 18285
102 726 21826
102 959 42795
102 393 6608
102 634 14965
102 247 2540
102 412 7817
102 430 8668
102 670 17614
102 794 29552
102 113 215
102 224 1582
102 762 24077
102 870 36287
102 256 3298
102 335 4824
102 346 5506
102 822 31179
# do_execsql_test 2.3.1
query I
SELECT row_number() OVER win
FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP
)
----
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# do_execsql_test 2.3.2
query I
SELECT nth_value(c, 14) OVER win
FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP
)
----
250
250
250
250
250
250
250
250
250
250
250
250
250
250
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
# do_execsql_test 2.3.3
query III
SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE GROUP
) ORDER BY a, b, c;
----
102 208 1135
102 238 2054
102 899 37186
102 929 39026
102 295 3850
102 480 10071
102 618 12442
102 845 34547
102 239 2293
102 355 6215
102 398 7006
102 399 7405
102 652 15617
102 759 23315
102 629 13698
102 683 18968
102 705 19673
102 777 26390
102 790 27966
102 839 32018
102 148 609
102 421 8238
102 574 11217
102 730 22556
102 336 5160
102 805 30357
102 223 1358
102 252 3042
102 844 33702
102 234 1816
102 711 20384
102 792 28758
102 938 41836
102 102 102
102 768 25613
102 250 2790
102 627 13069
102 768 24845
102 160 927
102 607 11824
102 660 16277
102 667 16944
NULL NULL NULL
102 257 3555
102 572 10643
102 716 21100
102 870 35417
102 934 39960
102 133 461
102 330 4489
102 443 9111
102 633 14331
102 158 767
102 840 32858
102 911 38097
102 938 40898
102 480 9591
102 786 27176
102 963 43758
102 113 328
102 309 4159
102 354 5860
102 671 18285
102 726 21826
102 959 42795
102 393 6608
102 634 14965
102 247 2540
102 412 7817
102 430 8668
102 670 17614
102 794 29552
102 113 215
102 224 1582
102 762 24077
102 870 36287
102 256 3298
102 335 4824
102 346 5506
102 822 31179
# do_execsql_test 2.4.1
query I
SELECT row_number() OVER win
FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES
)
----
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# do_execsql_test 2.4.2
query I
SELECT nth_value(c, 14) OVER win
FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES
)
----
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
247
# do_execsql_test 2.4.3
query III
SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
WINDOW win AS (
ORDER BY c, b, a
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES
) ORDER BY a, b, c;
----
102 223 1358
102 239 2293
102 911 38097
102 934 39960
102 309 4159
102 572 10643
102 627 13069
102 870 35417
102 247 2540
102 393 6608
102 399 7405
102 412 7817
102 660 16277
102 762 24077
102 633 14331
102 705 19673
102 711 20384
102 786 27176
102 792 28758
102 840 32858
102 158 767
102 430 8668
102 607 11824
102 759 23315
102 346 5506
102 822 31179
102 224 1582
102 256 3298
102 845 34547
102 238 2054
102 716 21100
102 794 29552
102 959 42795
102 113 215
102 777 26390
102 252 3042
102 629 13698
102 768 25613
102 208 1135
102 618 12442
102 667 16944
102 670 17614
102 102 102
102 295 3850
102 574 11217
102 726 21826
102 870 36287
102 938 40898
102 148 609
102 335 4824
102 480 9591
102 634 14965
102 160 927
102 844 33702
102 929 39026
102 938 41836
102 480 10071
102 790 27966
102 979 44737
102 133 461
102 330 4489
102 355 6215
102 683 18968
102 730 22556
102 963 43758
102 398 7006
102 652 15617
102 250 2790
102 421 8238
102 443 9111
102 671 18285
102 805 30357
102 113 328
102 234 1816
102 768 24845
102 899 37186
102 257 3555
102 336 5160
102 354 5860
102 839 32018
#==========================================================================
# do_execsql_test 4.0
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);
# do_execsql_test 4.4.1
query I
SELECT sum(b) OVER (
ORDER BY a NULLS FIRST ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
) FROM t1 ORDER BY 1 NULLS FIRST;
----
3
6
9
9
12
# do_execsql_test 4.4.2
query I
SELECT sum(b) OVER (
ORDER BY a NULLS LAST ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
) FROM t1 ORDER BY 1 NULLS LAST;
----
5
6
8
9
10
# do_execsql_test 4.4.3
query I
SELECT sum(b) OVER (
ORDER BY a DESC NULLS LAST ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
) FROM t1 ORDER BY 1 NULLS FIRST;
----
5
6
8
9
10
# do_execsql_test 4.4.4
query I
SELECT sum(b) OVER (
ORDER BY a DESC NULLS LAST ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
) FROM t1 ORDER BY 1 NULLS LAST;
----
5
6
8
9
10
#==========================================================================
# 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.7.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, b NULLS FIRST, a NULLS FIRST
ROWS BETWEEN 6 PRECEDING 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 113 81
979 113 82
979 133 80
979 148 79
979 158 77
979 158 78
979 160 77
979 208 76
979 223 75
979 224 74
979 234 73
979 238 72
979 239 71
979 247 70
979 250 69
979 252 68
979 256 67
979 257 66
979 295 65
979 309 64
979 330 63
979 335 62
979 336 61
979 346 60
979 354 59
979 355 58
979 355 58
979 393 56
979 393 57
979 398 55
979 399 54
979 399 54
979 412 53
979 421 52
979 430 51
979 443 50
979 480 48
979 480 49
979 572 47
979 574 46
979 607 45
979 618 43
979 618 44
979 627 42
979 629 41
979 629 41
979 633 40
979 634 39
979 652 38
979 660 37
979 667 36
979 667 36
979 670 35
979 671 34
979 683 33
979 705 32
979 711 31
979 716 30
979 726 29
979 730 28
979 759 27
979 762 26
979 768 24
979 768 25
979 777 23
979 786 22
979 790 21
979 792 20
979 794 19
979 805 18
979 822 17
979 839 15
979 839 16
979 840 14
979 844 13
979 845 12
979 870 10
979 870 11
979 870 11
979 899 9
979 911 8
979 929 7
# do_execsql_test 5.1.7.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, b NULLS FIRST, a NULLS FIRST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
3830 89 89
4741 88 88
5640 84 84
5640 85 85
5640 86 86
5640 87 87
6485 81 81
6485 82 82
6485 83 83
7324 80 80
8163 78 78
8163 79 79
8968 73 73
8968 74 74
8968 75 75
8968 76 76
8968 77 77
9745 69 69
9745 70 70
9745 71 71
9745 72 72
10504 65 65
10504 66 66
10504 67 67
10504 68 68
11215 64 64
11920 63 63
12603 62 62
13274 60 60
13274 61 61
13941 59 59
14608 55 55
14608 56 56
14608 57 57
14608 58 58
15241 54 54
15870 53 53
16499 52 52
17126 49 49
17126 50 50
17126 51 51
17733 44 44
17733 45 45
17733 46 46
17733 47 47
17733 48 48
18176 42 42
18176 43 43
18597 40 40
18597 41 41
18996 39 39
19395 37 37
19395 38 38
19788 36 36
20181 35 35
20536 34 34
20891 30 30
20891 31 31
20891 32 32
20891 33 33
21226 28 28
21226 29 29
21535 27 27
21830 26 26
22087 22 22
22087 23 23
22087 24 24
22087 25 25
22334 21 21
22573 17 17
22573 18 18
22573 19 19
22573 20 20
22796 11 11
22796 12 12
22796 13 13
22796 14 14
22796 15 15
22796 16 16
22929 10 10
23042 9 9
23155 1 1
23155 2 2
23155 3 3
23155 4 4
23155 5 5
23155 6 6
23155 7 7
23155 8 8
# do_execsql_test 5.1.14.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, b NULLS LAST, a NULLS LAST
ROWS BETWEEN 6 PRECEDING 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 113 81
979 113 82
979 133 80
979 148 79
979 158 77
979 158 78
979 160 77
979 208 76
979 223 75
979 224 74
979 234 73
979 238 72
979 239 71
979 247 70
979 250 69
979 252 68
979 256 67
979 257 66
979 295 65
979 309 64
979 330 63
979 335 62
979 336 61
979 346 60
979 354 59
979 355 57
979 355 58
979 393 56
979 393 57
979 398 55
979 399 53
979 399 54
979 412 53
979 421 52
979 430 51
979 443 50
979 480 48
979 480 49
979 572 47
979 574 46
979 607 45
979 618 43
979 618 44
979 627 42
979 629 40
979 629 41
979 633 40
979 634 39
979 652 38
979 660 37
979 667 35
979 667 36
979 670 35
979 671 34
979 683 33
979 705 32
979 711 31
979 716 30
979 726 29
979 730 28
979 759 27
979 762 26
979 768 24
979 768 25
979 777 23
979 786 22
979 790 21
979 792 20
979 794 19
979 805 18
979 822 17
979 839 15
979 839 16
979 840 14
979 844 13
979 845 12
979 870 9
979 870 10
979 870 11
979 899 9
979 911 8
979 929 7
# do_execsql_test 5.1.14.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, b NULLS LAST, a NULLS LAST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
3830 89 89
4741 88 88
5640 84 84
5640 85 85
5640 86 86
5640 87 87
6485 81 81
6485 82 82
6485 83 83
7324 80 80
8163 78 78
8163 79 79
8968 73 73
8968 74 74
8968 75 75
8968 76 76
8968 77 77
9745 69 69
9745 70 70
9745 71 71
9745 72 72
10504 65 65
10504 66 66
10504 67 67
10504 68 68
11215 64 64
11920 63 63
12603 62 62
13274 60 60
13274 61 61
13941 59 59
14608 55 55
14608 56 56
14608 57 57
14608 58 58
15241 54 54
15870 53 53
16499 52 52
17126 49 49
17126 50 50
17126 51 51
17733 44 44
17733 45 45
17733 46 46
17733 47 47
17733 48 48
18176 42 42
18176 43 43
18597 40 40
18597 41 41
18996 39 39
19395 37 37
19395 38 38
19788 36 36
20181 35 35
20536 34 34
20891 30 30
20891 31 31
20891 32 32
20891 33 33
21226 28 28
21226 29 29
21535 27 27
21830 26 26
22087 22 22
22087 23 23
22087 24 24
22087 25 25
22334 21 21
22573 17 17
22573 18 18
22573 19 19
22573 20 20
22796 11 11
22796 12 12
22796 13 13
22796 14 14
22796 15 15
22796 16 16
22929 10 10
23042 9 9
23155 1 1
23155 2 2
23155 3 3
23155 4 4
23155 5 5
23155 6 6
23155 7 7
23155 8 8
# do_execsql_test 5.2.7.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, b NULLS FIRST, a NULLS FIRST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
963 929 6
979 102 82
979 102 82
979 102 82
979 102 82
979 102 82
979 102 83
979 113 80
979 113 81
979 113 82
979 133 79
979 148 78
979 158 76
979 158 77
979 160 76
979 208 75
979 223 74
979 224 73
979 234 72
979 238 71
979 239 70
979 247 69
979 250 68
979 252 67
979 256 66
979 257 65
979 295 64
979 309 64
979 330 62
979 335 61
979 336 60
979 346 59
979 354 59
979 355 57
979 355 57
979 393 55
979 393 56
979 398 54
979 399 53
979 399 53
979 412 52
979 421 51
979 430 50
979 443 49
979 480 47
979 480 48
979 572 47
979 574 45
979 607 44
979 618 42
979 618 43
979 627 41
979 629 40
979 629 41
979 633 39
979 634 38
979 652 37
979 660 36
979 667 35
979 667 35
979 670 34
979 671 33
979 683 32
979 705 31
979 711 30
979 716 29
979 726 28
979 730 27
979 759 26
979 762 25
979 768 23
979 768 24
979 777 22
979 786 21
979 790 20
979 792 19
979 794 18
979 805 17
979 822 17
979 839 14
979 839 15
979 840 13
979 844 12
979 845 11
979 870 9
979 870 10
979 870 10
979 899 8
979 911 7
# do_execsql_test 5.2.7.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, b NULLS FIRST, a NULLS FIRST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
2851 89 89
3778 88 88
4681 87 87
5556 83 83
5574 82 82
5586 81 81
5640 84 84
5640 85 85
5640 86 86
7324 80 80
8123 77 77
8129 73 73
8129 74 74
8163 78 78
8163 79 79
8940 71 71
8968 75 75
8968 76 76
9727 66 66
9745 69 69
9745 70 70
9745 72 72
10504 65 65
10504 67 67
10504 68 68
11215 64 64
11844 62 62
11920 63 63
13274 60 60
13274 61 61
13897 58 58
13903 57 57
13925 56 56
13937 55 55
13941 59 59
15203 53 53
15241 54 54
15832 52 52
17100 48 48
17104 46 46
17104 47 47
17106 45 45
17126 49 49
17126 50 50
17126 51 51
17569 42 42
17733 44 44
18176 43 43
18597 40 40
18597 41 41
18952 37 37
18996 39 39
19395 38 38
19760 35 35
19788 36 36
20492 32 32
20492 33 33
20498 30 30
20536 34 34
20833 29 29
20871 28 28
20891 31 31
21180 27 27
21752 23 23
21830 26 26
22025 21 21
22087 22 22
22087 24 24
22087 25 25
22278 20 20
22316 19 19
22549 15 15
22557 14 14
22573 17 17
22573 18 18
22706 10 10
22796 11 11
22796 12 12
22796 13 13
22796 16 16
23022 4 4
23042 2 2
23042 3 3
23042 9 9
23155 1 1
23155 5 5
23155 6 6
23155 7 7
23155 8 8
# do_execsql_test 5.2.14.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, b NULLS LAST, a NULLS LAST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
963 929 6
979 102 82
979 102 82
979 102 82
979 102 82
979 102 82
979 102 83
979 113 80
979 113 81
979 113 82
979 133 79
979 148 78
979 158 76
979 158 77
979 160 76
979 208 75
979 223 74
979 224 73
979 234 72
979 238 71
979 239 70
979 247 69
979 250 68
979 252 67
979 256 66
979 257 65
979 295 64
979 309 63
979 330 63
979 335 61
979 336 60
979 346 59
979 354 58
979 355 56
979 355 58
979 393 55
979 393 56
979 398 54
979 399 52
979 399 53
979 412 52
979 421 51
979 430 50
979 443 49
979 480 47
979 480 48
979 572 46
979 574 46
979 607 44
979 618 42
979 618 43
979 627 41
979 629 40
979 629 40
979 633 39
979 634 38
979 652 37
979 660 36
979 667 34
979 667 35
979 670 34
979 671 33
979 683 32
979 705 31
979 711 30
979 716 29
979 726 28
979 730 27
979 759 26
979 762 25
979 768 23
979 768 24
979 777 22
979 786 21
979 790 20
979 792 19
979 794 18
979 805 17
979 822 16
979 839 15
979 839 15
979 840 13
979 844 12
979 845 11
979 870 8
979 870 9
979 870 10
979 899 8
979 911 7
# do_execsql_test 5.2.14.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, b NULLS LAST, a NULLS LAST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
2851 89 89
3778 88 88
4681 87 87
5556 83 83
5574 82 82
5586 81 81
5640 84 84
5640 85 85
5640 86 86
7324 80 80
8123 77 77
8129 73 73
8129 74 74
8163 78 78
8163 79 79
8940 71 71
8968 75 75
8968 76 76
9727 66 66
9745 69 69
9745 70 70
9745 72 72
10504 65 65
10504 67 67
10504 68 68
11215 64 64
11844 62 62
11920 63 63
13274 60 60
13274 61 61
13897 58 58
13903 57 57
13925 56 56
13937 55 55
13941 59 59
15203 53 53
15241 54 54
15832 52 52
17100 48 48
17104 46 46
17104 47 47
17106 45 45
17126 49 49
17126 50 50
17126 51 51
17569 42 42
17733 44 44
18176 43 43
18597 40 40
18597 41 41
18952 37 37
18996 39 39
19395 38 38
19760 35 35
19788 36 36
20492 32 32
20492 33 33
20498 30 30
20536 34 34
20833 29 29
20871 28 28
20891 31 31
21180 27 27
21752 23 23
21830 26 26
22025 21 21
22087 22 22
22087 24 24
22087 25 25
22278 20 20
22316 19 19
22549 15 15
22557 14 14
22573 17 17
22573 18 18
22706 10 10
22796 11 11
22796 12 12
22796 13 13
22796 16 16
23022 4 4
23042 2 2
23042 3 3
23042 9 9
23155 1 1
23155 5 5
23155 6 6
23155 7 7
23155 8 8
# do_execsql_test 5.3.7.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, b NULLS FIRST, a NULLS FIRST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
963 929 6
979 102 82
979 102 82
979 102 82
979 102 82
979 102 82
979 102 83
979 113 80
979 113 81
979 113 82
979 133 79
979 148 78
979 158 76
979 158 77
979 160 76
979 208 75
979 223 74
979 224 73
979 234 72
979 238 71
979 239 70
979 247 69
979 250 68
979 252 67
979 256 66
979 257 65
979 295 64
979 309 64
979 330 62
979 335 61
979 336 60
979 346 59
979 354 59
979 355 57
979 355 57
979 393 55
979 393 56
979 398 54
979 399 53
979 399 53
979 412 52
979 421 51
979 430 50
979 443 49
979 480 47
979 480 48
979 572 47
979 574 45
979 607 44
979 618 42
979 618 43
979 627 41
979 629 40
979 629 41
979 633 39
979 634 38
979 652 37
979 660 36
979 667 35
979 667 35
979 670 34
979 671 33
979 683 32
979 705 31
979 711 30
979 716 29
979 726 28
979 730 27
979 759 26
979 762 25
979 768 23
979 768 24
979 777 22
979 786 21
979 790 20
979 792 19
979 794 18
979 805 17
979 822 17
979 839 14
979 839 15
979 840 13
979 844 12
979 845 11
979 870 9
979 870 10
979 870 10
979 899 8
979 911 7
# do_execsql_test 5.3.7.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, b NULLS FIRST, a NULLS FIRST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
2851 89 89
3778 88 88
4681 87 87
5556 83 83
5574 82 82
5586 81 81
5640 84 84
5640 85 85
5640 86 86
7324 80 80
8123 77 77
8129 73 73
8129 74 74
8163 78 78
8163 79 79
8940 71 71
8968 75 75
8968 76 76
9727 66 66
9745 69 69
9745 70 70
9745 72 72
10504 65 65
10504 67 67
10504 68 68
11215 64 64
11844 62 62
11920 63 63
13274 60 60
13274 61 61
13897 58 58
13903 57 57
13925 56 56
13937 55 55
13941 59 59
15203 53 53
15241 54 54
15832 52 52
17100 48 48
17104 46 46
17104 47 47
17106 45 45
17126 49 49
17126 50 50
17126 51 51
17569 42 42
17733 44 44
18176 43 43
18597 40 40
18597 41 41
18952 37 37
18996 39 39
19395 38 38
19760 35 35
19788 36 36
20492 32 32
20492 33 33
20498 30 30
20536 34 34
20833 29 29
20871 28 28
20891 31 31
21180 27 27
21752 23 23
21830 26 26
22025 21 21
22087 22 22
22087 24 24
22087 25 25
22278 20 20
22316 19 19
22549 15 15
22557 14 14
22573 17 17
22573 18 18
22706 10 10
22796 11 11
22796 12 12
22796 13 13
22796 16 16
23022 4 4
23042 2 2
23042 3 3
23042 9 9
23155 1 1
23155 5 5
23155 6 6
23155 7 7
23155 8 8
# do_execsql_test 5.3.14.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, b NULLS LAST, a NULLS LAST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
963 929 6
979 102 82
979 102 82
979 102 82
979 102 82
979 102 82
979 102 83
979 113 80
979 113 81
979 113 82
979 133 79
979 148 78
979 158 76
979 158 77
979 160 76
979 208 75
979 223 74
979 224 73
979 234 72
979 238 71
979 239 70
979 247 69
979 250 68
979 252 67
979 256 66
979 257 65
979 295 64
979 309 63
979 330 63
979 335 61
979 336 60
979 346 59
979 354 58
979 355 56
979 355 58
979 393 55
979 393 56
979 398 54
979 399 52
979 399 53
979 412 52
979 421 51
979 430 50
979 443 49
979 480 47
979 480 48
979 572 46
979 574 46
979 607 44
979 618 42
979 618 43
979 627 41
979 629 40
979 629 40
979 633 39
979 634 38
979 652 37
979 660 36
979 667 34
979 667 35
979 670 34
979 671 33
979 683 32
979 705 31
979 711 30
979 716 29
979 726 28
979 730 27
979 759 26
979 762 25
979 768 23
979 768 24
979 777 22
979 786 21
979 790 20
979 792 19
979 794 18
979 805 17
979 822 16
979 839 15
979 839 15
979 840 13
979 844 12
979 845 11
979 870 8
979 870 9
979 870 10
979 899 8
979 911 7
# do_execsql_test 5.3.14.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, b NULLS LAST, a NULLS LAST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
2851 89 89
3778 88 88
4681 87 87
5556 83 83
5574 82 82
5586 81 81
5640 84 84
5640 85 85
5640 86 86
7324 80 80
8123 77 77
8129 73 73
8129 74 74
8163 78 78
8163 79 79
8940 71 71
8968 75 75
8968 76 76
9727 66 66
9745 69 69
9745 70 70
9745 72 72
10504 65 65
10504 67 67
10504 68 68
11215 64 64
11844 62 62
11920 63 63
13274 60 60
13274 61 61
13897 58 58
13903 57 57
13925 56 56
13937 55 55
13941 59 59
15203 53 53
15241 54 54
15832 52 52
17100 48 48
17104 46 46
17104 47 47
17106 45 45
17126 49 49
17126 50 50
17126 51 51
17569 42 42
17733 44 44
18176 43 43
18597 40 40
18597 41 41
18952 37 37
18996 39 39
19395 38 38
19760 35 35
19788 36 36
20492 32 32
20492 33 33
20498 30 30
20536 34 34
20833 29 29
20871 28 28
20891 31 31
21180 27 27
21752 23 23
21830 26 26
22025 21 21
22087 22 22
22087 24 24
22087 25 25
22278 20 20
22316 19 19
22549 15 15
22557 14 14
22573 17 17
22573 18 18
22706 10 10
22796 11 11
22796 12 12
22796 13 13
22796 16 16
23022 4 4
23042 2 2
23042 3 3
23042 9 9
23155 1 1
23155 5 5
23155 6 6
23155 7 7
23155 8 8
# do_execsql_test 5.4.7.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, b NULLS FIRST, a NULLS FIRST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES )
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 113 81
979 113 82
979 133 80
979 148 79
979 158 77
979 158 78
979 160 77
979 208 76
979 223 75
979 224 74
979 234 73
979 238 72
979 239 71
979 247 70
979 250 69
979 252 68
979 256 67
979 257 66
979 295 65
979 309 64
979 330 63
979 335 62
979 336 61
979 346 60
979 354 59
979 355 58
979 355 58
979 393 56
979 393 57
979 398 55
979 399 54
979 399 54
979 412 53
979 421 52
979 430 51
979 443 50
979 480 48
979 480 49
979 572 47
979 574 46
979 607 45
979 618 43
979 618 44
979 627 42
979 629 41
979 629 41
979 633 40
979 634 39
979 652 38
979 660 37
979 667 36
979 667 36
979 670 35
979 671 34
979 683 33
979 705 32
979 711 31
979 716 30
979 726 29
979 730 28
979 759 27
979 762 26
979 768 24
979 768 25
979 777 23
979 786 22
979 790 21
979 792 20
979 794 19
979 805 18
979 822 17
979 839 15
979 839 16
979 840 14
979 844 13
979 845 12
979 870 10
979 870 11
979 870 11
979 899 9
979 911 8
979 929 7
# do_execsql_test 5.4.7.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, b NULLS FIRST, a NULLS FIRST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
3830 89 89
4741 88 88
5640 84 84
5640 85 85
5640 86 86
5640 87 87
6485 81 81
6485 82 82
6485 83 83
7324 80 80
8163 78 78
8163 79 79
8968 73 73
8968 74 74
8968 75 75
8968 76 76
8968 77 77
9745 69 69
9745 70 70
9745 71 71
9745 72 72
10504 65 65
10504 66 66
10504 67 67
10504 68 68
11215 64 64
11920 63 63
12603 62 62
13274 60 60
13274 61 61
13941 59 59
14608 55 55
14608 56 56
14608 57 57
14608 58 58
15241 54 54
15870 53 53
16499 52 52
17126 49 49
17126 50 50
17126 51 51
17733 44 44
17733 45 45
17733 46 46
17733 47 47
17733 48 48
18176 42 42
18176 43 43
18597 40 40
18597 41 41
18996 39 39
19395 37 37
19395 38 38
19788 36 36
20181 35 35
20536 34 34
20891 30 30
20891 31 31
20891 32 32
20891 33 33
21226 28 28
21226 29 29
21535 27 27
21830 26 26
22087 22 22
22087 23 23
22087 24 24
22087 25 25
22334 21 21
22573 17 17
22573 18 18
22573 19 19
22573 20 20
22796 11 11
22796 12 12
22796 13 13
22796 14 14
22796 15 15
22796 16 16
22929 10 10
23042 9 9
23155 1 1
23155 2 2
23155 3 3
23155 4 4
23155 5 5
23155 6 6
23155 7 7
23155 8 8
# do_execsql_test 5.4.14.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, b NULLS LAST, a NULLS LAST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES )
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 113 81
979 113 82
979 133 80
979 148 79
979 158 77
979 158 78
979 160 77
979 208 76
979 223 75
979 224 74
979 234 73
979 238 72
979 239 71
979 247 70
979 250 69
979 252 68
979 256 67
979 257 66
979 295 65
979 309 64
979 330 63
979 335 62
979 336 61
979 346 60
979 354 59
979 355 57
979 355 58
979 393 56
979 393 57
979 398 55
979 399 53
979 399 54
979 412 53
979 421 52
979 430 51
979 443 50
979 480 48
979 480 49
979 572 47
979 574 46
979 607 45
979 618 43
979 618 44
979 627 42
979 629 40
979 629 41
979 633 40
979 634 39
979 652 38
979 660 37
979 667 35
979 667 36
979 670 35
979 671 34
979 683 33
979 705 32
979 711 31
979 716 30
979 726 29
979 730 28
979 759 27
979 762 26
979 768 24
979 768 25
979 777 23
979 786 22
979 790 21
979 792 20
979 794 19
979 805 18
979 822 17
979 839 15
979 839 16
979 840 14
979 844 13
979 845 12
979 870 9
979 870 10
979 870 11
979 899 9
979 911 8
979 929 7
# do_execsql_test 5.4.14.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, b NULLS LAST, a NULLS LAST
ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES )
ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
----
3830 89 89
4741 88 88
5640 84 84
5640 85 85
5640 86 86
5640 87 87
6485 81 81
6485 82 82
6485 83 83
7324 80 80
8163 78 78
8163 79 79
8968 73 73
8968 74 74
8968 75 75
8968 76 76
8968 77 77
9745 69 69
9745 70 70
9745 71 71
9745 72 72
10504 65 65
10504 66 66
10504 67 67
10504 68 68
11215 64 64
11920 63 63
12603 62 62
13274 60 60
13274 61 61
13941 59 59
14608 55 55
14608 56 56
14608 57 57
14608 58 58
15241 54 54
15870 53 53
16499 52 52
17126 49 49
17126 50 50
17126 51 51
17733 44 44
17733 45 45
17733 46 46
17733 47 47
17733 48 48
18176 42 42
18176 43 43
18597 40 40
18597 41 41
18996 39 39
19395 37 37
19395 38 38
19788 36 36
20181 35 35
20536 34 34
20891 30 30
20891 31 31
20891 32 32
20891 33 33
21226 28 28
21226 29 29
21535 27 27
21830 26 26
22087 22 22
22087 23 23
22087 24 24
22087 25 25
22334 21 21
22573 17 17
22573 18 18
22573 19 19
22573 20 20
22796 11 11
22796 12 12
22796 13 13
22796 14 14
22796 15 15
22796 16 16
22929 10 10
23042 9 9
23155 1 1
23155 2 2
23155 3 3
23155 4 4
23155 5 5
23155 6 6
23155 7 7
23155 8 8