do_execsql_test 4.2.1 {
SELECT sum(b) OVER (
ORDER BY a RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING
- ) FROM t1 ORDER BY 1 ;
+ ) FROM t1 ORDER BY 1 NULLS FIRST;
} {{} {} 6 6 6}
do_execsql_test 4.2.2 {
+ SELECT sum(b) OVER (
+ ORDER BY a RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING
+ ) FROM t1 ORDER BY 1 NULLS LAST;
+} {6 6 6 {} {}}
+
+do_execsql_test 4.2.3 {
SELECT sum(b) OVER (
ORDER BY a DESC RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING
- ) FROM t1 ORDER BY 1 ;
+ ) FROM t1 ORDER BY 1 NULLS FIRST;
} {{} {} 6 6 6}
+do_execsql_test 4.2.4 {
+ 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 {} {}}
+
do_execsql_test 4.3.1 {
SELECT sum(b) OVER (
- ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING
- ) FROM t1 ORDER BY 1 ;
+ 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 {
+ 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.4.1 {
SELECT sum(b) OVER (
- ORDER BY a ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
- ) FROM t1 ORDER BY 1 ;
+ 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 {
SELECT sum(b) OVER (
- ORDER BY a DESC ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
- ) FROM t1 ORDER BY 1 ;
+ 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 {
+ 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 {
+ 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}
#==========================================================================
count(a) OVER win
FROM t3
WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ 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
dense_rank() OVER win
FROM t3
WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ 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
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY a
+ WINDOW win AS ( ORDER BY a NULLS FIRST
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ 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
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY a
+ WINDOW win AS ( ORDER BY a NULLS FIRST
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ 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
FROM t3
WINDOW win AS ( PARTITION BY coalesce(a, '')
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ 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
FROM t3
WINDOW win AS ( PARTITION BY coalesce(a, '')
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ 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
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ WINDOW win AS ( ORDER BY a NULLS FIRST GROUPS 6 PRECEDING 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
934 158 8 934 158 8 934 158 8 934 158 8 934 158 8 934 158 8
934 158 8 934 158 8 934 158 21 934 158 21 934 158 21 934 158 21
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ WINDOW win AS ( ORDER BY a NULLS FIRST GROUPS 6 PRECEDING EXCLUDE NO OTHERS )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {2050 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 4359 7 2
4359 7 2 4359 7 2 4359 7 2 4359 7 2 4359 7 2 4359 7 2 4359 7 2
7840 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ 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
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ 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
} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 25 23 {} 34 29
{} 36 31 {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 43 37 {} 43 37
{} 50 42 {} 60 51 {} 61 52 {} 64 55 {} 64 55 {} 67 57 {} 68 58
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ 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
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE NO OTHERS )
- ORDER BY 1 , 2 , 3
+ 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
} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 11 9 {} 12 10
{} 13 11 {} 16 14 {} 17 15 {} 18 16 {} 22 20 {} 24 22 {} 25 23
{} 26 24 {} 31 27 {} 34 29 {} 36 31 {} 38 33 {} 38 33 {} 40 34
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c , b , a
+ 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 , 2 , 3
+ 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
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY c , b , a
+ 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 , 2 , 3
+ 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
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.1.1 {
+do_execsql_test 5.1.8.1 {
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 , 2 , 3
-} {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}
+ 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.2.1.2 {
+do_execsql_test 5.1.8.2 {
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 , 2 , 3
-} {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
+ 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}
-do_execsql_test 5.2.2.1 {
+do_execsql_test 5.1.9.1 {
SELECT max(c) OVER win,
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY a
- RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW )
- ORDER BY 1 , 2 , 3
-} {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
+ 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 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}
+ 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.2.2.2 {
+do_execsql_test 5.1.9.2 {
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
- RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW )
- ORDER BY 1 , 2 , 3
-} {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}
+ 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.2.3.1 {
+do_execsql_test 5.1.10.1 {
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 , 2 , 3
-} {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}
+ 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.2.3.2 {
+do_execsql_test 5.1.10.2 {
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 , 2 , 3
-} {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
+ 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.2.4.1 {
+do_execsql_test 5.1.11.1 {
SELECT max(c) OVER win,
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE CURRENT ROW )
- ORDER BY 1 , 2 , 3
-} {667 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 355 0
- 911 158 7 934 158 7 934 158 7 934 158 7 934 158 7 934 158 7
- 934 158 7 934 158 7 934 158 20 934 158 20 934 158 20 934 158 20
- 934 158 20 934 158 20 934 158 20 934 158 20 934 158 20 934 158 20
- 934 158 20 934 158 20 934 158 20 934 158 26 934 158 26 934 158 26
- 934 158 26 934 158 26 934 158 26 934 158 33 959 102 49 959 102 49
- 959 102 49 959 102 49 959 102 49 959 102 49 959 102 49 959 102 49
- 959 102 49 959 102 49 959 102 57 959 102 57 959 102 57 959 102 57
- 959 102 57 959 102 57 959 102 57 959 102 57 959 113 38 959 113 38
- 959 113 38 959 113 38 959 113 49 959 158 33 959 158 33 959 158 33
- 959 158 33 959 158 33 959 158 33 959 158 38 963 102 58 979 102 52
- 979 102 52 979 102 52 979 102 52 979 102 52 979 102 52 979 102 52
- 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55
- 979 102 55 979 102 55 979 102 55 979 102 58 979 102 58 979 102 58
- 979 102 58 979 102 58 979 102 58 979 102 58 979 102 58}
+ WINDOW win AS ( ORDER BY a NULLS LAST GROUPS 6 PRECEDING EXCLUDE NO OTHERS )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
+} {934 158 27 934 158 27 934 158 27 934 158 27 934 158 27 934 158 27
+ 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8
+ 934 223 8 934 223 8 934 223 21 934 223 21 934 223 21 934 223 21
+ 934 223 21 934 223 21 934 223 21 934 223 21 934 223 21 934 223 21
+ 934 223 21 934 223 21 934 223 21 959 102 50 959 102 50 959 102 50
+ 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50
+ 959 102 50 959 102 50 959 102 58 959 102 58 959 102 58 959 102 58
+ 959 102 58 959 102 58 959 102 58 959 102 58 959 113 39 959 113 39
+ 959 113 39 959 113 39 959 113 39 959 158 34 959 158 34 959 158 34
+ 959 158 34 959 158 34 959 158 34 959 158 34 979 102 49 979 102 49
+ 979 102 49 979 102 49 979 102 49 979 102 49 979 102 53 979 102 53
+ 979 102 53 979 102 53 979 102 53 979 102 53 979 102 53 979 102 56
+ 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56
+ 979 102 56 979 102 56 979 102 59 979 102 59 979 102 59 979 102 59
+ 979 102 59 979 102 59 979 102 59 979 102 59 979 102 59}
-do_execsql_test 5.2.4.2 {
+do_execsql_test 5.1.11.2 {
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 GROUPS 6 PRECEDING EXCLUDE CURRENT ROW )
- ORDER BY 1 , 2 , 3
-} {1383 1 1 1421 1 1 1651 1 1 1695 1 1 2050 1 1 2050 1 1 3448 7 2
- 3732 7 2 4050 7 2 4120 7 2 4136 7 2 4359 7 2 4359 7 2 4359 7 2
- 7129 15 3 7135 15 3 7207 15 3 7441 15 3 7447 15 3 7447 15 3
- 7593 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3
- 7840 15 3 8447 28 4 8599 28 4 9206 28 4 9206 28 4 9206 28 4
- 9206 28 4 10051 34 5 10165 34 5 11010 34 5 11010 34 5 11010 34 5
- 11010 34 5 11010 34 5 11563 74 10 11697 74 10 11752 41 6
- 11776 57 8 11900 41 6 11925 74 10 11947 74 10 12368 74 10
- 12368 74 10 12368 74 10 12370 57 8 12416 41 6 12529 41 6
- 12529 41 6 12530 65 9 12546 65 9 12705 57 8 12705 57 8 12705 57 8
- 12705 57 8 12705 57 8 12705 57 8 12824 46 7 12826 65 9
- 13050 81 11 13110 81 11 13110 81 11 13154 65 9 13196 46 7
- 13376 65 9 13491 46 7 13491 46 7 13491 46 7 13491 46 7 13491 46 7
- 13491 46 7 13491 46 7 13491 46 7 13491 46 7 13509 65 9 13509 65 9
- 13509 65 9 13509 65 9 13692 81 11 13836 81 11 13949 81 11
- 13949 81 11 13949 81 11 13949 81 11}
-
-do_execsql_test 5.2.5.1 {
+ WINDOW win AS ( ORDER BY a NULLS LAST GROUPS 6 PRECEDING EXCLUDE NO OTHERS )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
+} {2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1
+ 2309 1 1 5790 9 2 5790 9 2 5790 9 2 5790 9 2 5790 9 2 5790 9 2
+ 5790 9 2 5790 9 2 5790 9 2 5790 9 2 5790 9 2 5790 9 2 5790 9 2
+ 7156 22 3 7156 22 3 7156 22 3 7156 22 3 7156 22 3 7156 22 3
+ 8960 28 4 8960 28 4 8960 28 4 8960 28 4 8960 28 4 8960 28 4
+ 8960 28 4 10479 35 5 10479 35 5 10479 35 5 10479 35 5 10479 35 5
+ 11441 40 6 11441 40 6 11441 40 6 11441 40 6 11441 40 6 11441 40 6
+ 11441 40 6 11441 40 6 11441 40 6 11441 40 6 11441 40 6 12368 68 9
+ 12368 68 9 12368 68 9 12368 68 9 12368 68 9 12368 68 9 12368 68 9
+ 12705 51 7 12705 51 7 12705 51 7 12705 51 7 12705 51 7 12705 51 7
+ 12705 51 7 12705 51 7 13509 59 8 13509 59 8 13509 59 8 13509 59 8
+ 13509 59 8 13509 59 8 13509 59 8 13509 59 8 13509 59 8
+ 13949 75 10 13949 75 10 13949 75 10 13949 75 10 13949 75 10
+ 13949 75 10 13949 75 10 13949 75 10 13949 75 10 14195 84 11
+ 14195 84 11 14195 84 11 14195 84 11 14195 84 11 14195 84 11}
+
+do_execsql_test 5.1.12.1 {
SELECT max(c) OVER win,
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE CURRENT ROW )
- ORDER BY 1 , 2 , 3
-} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
- {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
- {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 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}
+ 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.2.5.2 {
+do_execsql_test 5.1.12.2 {
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 RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE CURRENT ROW )
- ORDER BY 1 , 2 , 3
-} {{} 1 1 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 10 8
- {} 14 12 {} 15 13 {} 19 17 {} 20 18 {} 21 19 {} 23 21 {} 25 23
- {} 34 29 {} 35 30 {} 36 31 {} 37 32 {} 38 33 {} 38 33 {} 40 34
- {} 41 35 {} 42 36 {} 43 37 {} 43 37 {} 50 42 {} 56 47 {} 60 51
- {} 61 52 {} 62 53 {} 64 55 {} 64 55 {} 66 56 {} 67 57 {} 68 58
- {} 69 59 {} 70 60 {} 71 61 {} 72 62 {} 78 67 {} 78 67 {} 78 67
- {} 81 68 {} 82 69 {} 83 70 {} 85 72 {} 85 72 {} 89 75 113 2 2
- 113 2 2 223 11 9 239 12 10 239 13 11 257 18 16 335 22 20
+ 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
+} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 25 23 {} 34 29
+ {} 36 31 {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 43 37 {} 43 37
+ {} 50 42 {} 60 51 {} 61 52 {} 64 55 {} 64 55 {} 67 57 {} 68 58
+ {} 69 59 {} 70 60 {} 72 62 {} 78 67 {} 78 67 {} 78 67 {} 85 72
+ {} 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 {
+ 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 {
+ 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
+} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 11 9 {} 12 10
+ {} 13 11 {} 16 14 {} 17 15 {} 18 16 {} 22 20 {} 24 22 {} 25 23
+ {} 26 24 {} 31 27 {} 34 29 {} 36 31 {} 38 33 {} 38 33 {} 40 34
+ {} 41 35 {} 43 37 {} 43 37 {} 49 41 {} 50 42 {} 51 43 {} 54 45
+ {} 59 50 {} 60 51 {} 61 52 {} 63 54 {} 64 55 {} 64 55 {} 67 57
+ {} 68 58 {} 69 59 {} 70 60 {} 72 62 {} 75 64 {} 76 65 {} 78 67
+ {} 78 67 {} 78 67 {} 84 71 {} 85 72 {} 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.14.1 {
+ 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 {
+ 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.1.1 {
+ 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 {
+ 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 {
+ 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 {
+ 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 {
+ 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 {
+ 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.4.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win,
+ count(a) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a NULLS FIRST GROUPS 6 PRECEDING EXCLUDE CURRENT ROW )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
+} {667 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 355 0
+ 911 158 7 934 158 7 934 158 7 934 158 7 934 158 7 934 158 7
+ 934 158 7 934 158 7 934 158 20 934 158 20 934 158 20 934 158 20
+ 934 158 20 934 158 20 934 158 20 934 158 20 934 158 20 934 158 20
+ 934 158 20 934 158 20 934 158 20 934 158 26 934 158 26 934 158 26
+ 934 158 26 934 158 26 934 158 26 934 158 33 959 102 49 959 102 49
+ 959 102 49 959 102 49 959 102 49 959 102 49 959 102 49 959 102 49
+ 959 102 49 959 102 49 959 102 57 959 102 57 959 102 57 959 102 57
+ 959 102 57 959 102 57 959 102 57 959 102 57 959 113 38 959 113 38
+ 959 113 38 959 113 38 959 113 49 959 158 33 959 158 33 959 158 33
+ 959 158 33 959 158 33 959 158 33 959 158 38 963 102 58 979 102 52
+ 979 102 52 979 102 52 979 102 52 979 102 52 979 102 52 979 102 52
+ 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55
+ 979 102 55 979 102 55 979 102 55 979 102 58 979 102 58 979 102 58
+ 979 102 58 979 102 58 979 102 58 979 102 58 979 102 58}
+
+do_execsql_test 5.2.4.2 {
+ 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 GROUPS 6 PRECEDING EXCLUDE CURRENT ROW )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
+} {1383 1 1 1421 1 1 1651 1 1 1695 1 1 2050 1 1 2050 1 1 3448 7 2
+ 3732 7 2 4050 7 2 4120 7 2 4136 7 2 4359 7 2 4359 7 2 4359 7 2
+ 7129 15 3 7135 15 3 7207 15 3 7441 15 3 7447 15 3 7447 15 3
+ 7593 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3
+ 7840 15 3 8447 28 4 8599 28 4 9206 28 4 9206 28 4 9206 28 4
+ 9206 28 4 10051 34 5 10165 34 5 11010 34 5 11010 34 5 11010 34 5
+ 11010 34 5 11010 34 5 11563 74 10 11697 74 10 11752 41 6
+ 11776 57 8 11900 41 6 11925 74 10 11947 74 10 12368 74 10
+ 12368 74 10 12368 74 10 12370 57 8 12416 41 6 12529 41 6
+ 12529 41 6 12530 65 9 12546 65 9 12705 57 8 12705 57 8 12705 57 8
+ 12705 57 8 12705 57 8 12705 57 8 12824 46 7 12826 65 9
+ 13050 81 11 13110 81 11 13110 81 11 13154 65 9 13196 46 7
+ 13376 65 9 13491 46 7 13491 46 7 13491 46 7 13491 46 7 13491 46 7
+ 13491 46 7 13491 46 7 13491 46 7 13491 46 7 13509 65 9 13509 65 9
+ 13509 65 9 13509 65 9 13692 81 11 13836 81 11 13949 81 11
+ 13949 81 11 13949 81 11 13949 81 11}
+
+do_execsql_test 5.2.5.1 {
+ 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
+} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 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 {
+ 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
+} {{} 1 1 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 10 8
+ {} 14 12 {} 15 13 {} 19 17 {} 20 18 {} 21 19 {} 23 21 {} 25 23
+ {} 34 29 {} 35 30 {} 36 31 {} 37 32 {} 38 33 {} 38 33 {} 40 34
+ {} 41 35 {} 42 36 {} 43 37 {} 43 37 {} 50 42 {} 56 47 {} 60 51
+ {} 61 52 {} 62 53 {} 64 55 {} 64 55 {} 66 56 {} 67 57 {} 68 58
+ {} 69 59 {} 70 60 {} 71 61 {} 72 62 {} 78 67 {} 78 67 {} 78 67
+ {} 81 68 {} 82 69 {} 83 70 {} 85 72 {} 85 72 {} 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 {
+ 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
+} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 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 {
+ 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
+} {{} 1 1 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 10 8
+ {} 11 9 {} 12 10 {} 13 11 {} 14 12 {} 15 13 {} 16 14 {} 17 15
+ {} 18 16 {} 19 17 {} 20 18 {} 21 19 {} 22 20 {} 23 21 {} 24 22
+ {} 25 23 {} 26 24 {} 31 27 {} 34 29 {} 35 30 {} 36 31 {} 37 32
+ {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 42 36 {} 43 37 {} 43 37
+ {} 45 38 {} 48 40 {} 49 41 {} 50 42 {} 51 43 {} 54 45 {} 55 46
+ {} 56 47 {} 57 48 {} 58 49 {} 59 50 {} 60 51 {} 61 52 {} 62 53
+ {} 63 54 {} 64 55 {} 64 55 {} 66 56 {} 67 57 {} 68 58 {} 69 59
+ {} 70 60 {} 71 61 {} 72 62 {} 75 64 {} 76 65 {} 77 66 {} 78 67
+ {} 78 67 {} 78 67 {} 81 68 {} 82 69 {} 83 70 {} 84 71 {} 85 72
+ {} 85 72 {} 87 73 {} 88 74 {} 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.7.1 {
+ 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 {
+ 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.8.1 {
+ 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 {
+ 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 {
+ 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 {
+ 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 {
+ 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 {
+ 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.11.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win,
+ count(a) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a NULLS LAST GROUPS 6 PRECEDING EXCLUDE CURRENT ROW )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
+} {911 223 7 934 158 26 934 158 26 934 158 26 934 158 26 934 158 26
+ 934 158 33 934 223 7 934 223 7 934 223 7 934 223 7 934 223 7
+ 934 223 7 934 223 20 934 223 20 934 223 20 934 223 20 934 223 20
+ 934 223 20 934 223 20 934 223 20 934 223 20 934 223 20 934 223 20
+ 934 223 20 934 223 20 934 223 26 934 239 7 959 102 49 959 102 49
+ 959 102 49 959 102 49 959 102 49 959 102 49 959 102 49 959 102 49
+ 959 102 49 959 102 49 959 102 57 959 102 57 959 102 57 959 102 57
+ 959 102 57 959 102 57 959 102 57 959 102 57 959 113 38 959 113 38
+ 959 113 38 959 113 38 959 113 49 959 158 33 959 158 33 959 158 33
+ 959 158 33 959 158 33 959 158 33 959 158 38 963 102 58 979 102 49
+ 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 979 102 52
+ 979 102 52 979 102 52 979 102 52 979 102 52 979 102 52 979 102 52
+ 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55
+ 979 102 55 979 102 55 979 102 55 979 102 58 979 102 58 979 102 58
+ 979 102 58 979 102 58 979 102 58 979 102 58 979 102 58}
+
+do_execsql_test 5.2.11.2 {
+ 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 GROUPS 6 PRECEDING EXCLUDE CURRENT ROW )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
+} {1398 1 1 1682 1 1 2000 1 1 2070 1 1 2086 1 1 2309 1 1 2309 1 1
+ 2309 1 1 5079 9 2 5085 9 2 5157 9 2 5391 9 2 5397 9 2 5397 9 2
+ 5543 9 2 5790 9 2 5790 9 2 5790 9 2 5790 9 2 5790 9 2 5790 9 2
+ 6397 22 3 6549 22 3 7156 22 3 7156 22 3 7156 22 3 7156 22 3
+ 8001 28 4 8115 28 4 8960 28 4 8960 28 4 8960 28 4 8960 28 4
+ 8960 28 4 9702 35 5 9850 35 5 10366 35 5 10479 35 5 10479 35 5
+ 10774 40 6 11146 40 6 11441 40 6 11441 40 6 11441 40 6 11441 40 6
+ 11441 40 6 11441 40 6 11441 40 6 11441 40 6 11441 40 6 11563 68 9
+ 11697 68 9 11776 51 7 11925 68 9 11947 68 9 12368 68 9 12368 68 9
+ 12368 68 9 12370 51 7 12530 59 8 12546 59 8 12705 51 7 12705 51 7
+ 12705 51 7 12705 51 7 12705 51 7 12705 51 7 12826 59 8
+ 13050 75 10 13110 75 10 13110 75 10 13154 59 8 13376 59 8
+ 13509 59 8 13509 59 8 13509 59 8 13509 59 8 13528 84 11
+ 13566 84 11 13692 75 10 13796 84 11 13836 75 10 13840 84 11
+ 13949 75 10 13949 75 10 13949 75 10 13949 75 10 14195 84 11
+ 14195 84 11}
+
+do_execsql_test 5.2.12.1 {
+ 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
+} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 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 {
+ 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
+} {{} 1 1 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 10 8
+ {} 14 12 {} 15 13 {} 19 17 {} 20 18 {} 21 19 {} 23 21 {} 25 23
+ {} 34 29 {} 35 30 {} 36 31 {} 37 32 {} 38 33 {} 38 33 {} 40 34
+ {} 41 35 {} 42 36 {} 43 37 {} 43 37 {} 50 42 {} 56 47 {} 60 51
+ {} 61 52 {} 62 53 {} 64 55 {} 64 55 {} 66 56 {} 67 57 {} 68 58
+ {} 69 59 {} 70 60 {} 71 61 {} 72 62 {} 78 67 {} 78 67 {} 78 67
+ {} 81 68 {} 82 69 {} 83 70 {} 85 72 {} 85 72 {} 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
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 {
+do_execsql_test 5.2.13.1 {
SELECT max(c) OVER win,
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW )
- ORDER BY 1 , 2 , 3
+ 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
} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
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 {
+do_execsql_test 5.2.13.2 {
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 RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW )
- ORDER BY 1 , 2 , 3
+ 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
} {{} 1 1 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 10 8
{} 11 9 {} 12 10 {} 13 11 {} 14 12 {} 15 13 {} 16 14 {} 17 15
{} 18 16 {} 19 17 {} 20 18 {} 21 19 {} 22 20 {} 23 21 {} 24 22
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.7.1 {
+do_execsql_test 5.2.14.1 {
SELECT max(c) OVER win,
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c , b , a
+ 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 , 2 , 3
+ 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 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 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}
+ 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.7.2 {
+do_execsql_test 5.2.14.2 {
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 , b , a
+ 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 , 2 , 3
+ 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
count(a) OVER win
FROM t3
WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
dense_rank() OVER win
FROM t3
WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY a
+ WINDOW win AS ( ORDER BY a NULLS FIRST
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 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
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY a
+ WINDOW win AS ( ORDER BY a NULLS FIRST
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} 81 11 {} 81 11 {} 81 11 {} 81 11 {} 81 11 {} 81 11 {} 81 11
{} 81 11 {} 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
FROM t3
WINDOW win AS ( PARTITION BY coalesce(a, '')
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
FROM t3
WINDOW win AS ( PARTITION BY coalesce(a, '')
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ WINDOW win AS ( ORDER BY a NULLS FIRST GROUPS 6 PRECEDING EXCLUDE GROUP )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 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 934 158 8 934 158 8 934 158 8 934 158 8 934 158 8
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ WINDOW win AS ( ORDER BY a NULLS FIRST GROUPS 6 PRECEDING EXCLUDE GROUP )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 2050 7 2 2050 7 2
2050 7 2 2050 7 2 2050 7 2 2050 7 2 2050 7 2 2050 7 2 4359 15 3
4359 15 3 4359 15 3 4359 15 3 4359 15 3 4359 15 3 4359 15 3
11441 57 8 12529 46 7 12529 46 7 12529 46 7 12529 46 7 12529 46 7
12529 46 7 12529 46 7 12529 46 7 12529 46 7 12529 46 7 12529 46 7}
-do_execsql_test 5.3.5.1 {
+do_execsql_test 5.3.5.1 {
+ 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
+} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 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 {
+ 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
+} {{} 1 1 {} 2 2 {} 2 2 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6
+ {} 9 7 {} 10 8 {} 14 12 {} 15 13 {} 19 17 {} 20 18 {} 21 19
+ {} 23 21 {} 25 23 {} 27 25 {} 27 25 {} 34 29 {} 35 30 {} 36 31
+ {} 37 32 {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 42 36 {} 43 37
+ {} 43 37 {} 50 42 {} 56 47 {} 60 51 {} 61 52 {} 62 53 {} 64 55
+ {} 64 55 {} 66 56 {} 67 57 {} 68 58 {} 69 59 {} 70 60 {} 71 61
+ {} 72 62 {} 78 67 {} 78 67 {} 78 67 {} 81 68 {} 82 69 {} 83 70
+ {} 85 72 {} 85 72 {} 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 {
+ 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
+} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0}
+
+do_execsql_test 5.3.6.2 {
+ 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
+} {{} 1 1 {} 2 2 {} 2 2 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6
+ {} 9 7 {} 10 8 {} 11 9 {} 12 10 {} 13 11 {} 14 12 {} 15 13
+ {} 16 14 {} 17 15 {} 18 16 {} 19 17 {} 20 18 {} 21 19 {} 22 20
+ {} 23 21 {} 24 22 {} 25 23 {} 26 24 {} 27 25 {} 27 25 {} 29 26
+ {} 29 26 {} 31 27 {} 32 28 {} 32 28 {} 34 29 {} 35 30 {} 36 31
+ {} 37 32 {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 42 36 {} 43 37
+ {} 43 37 {} 45 38 {} 46 39 {} 46 39 {} 48 40 {} 49 41 {} 50 42
+ {} 51 43 {} 52 44 {} 52 44 {} 54 45 {} 55 46 {} 56 47 {} 57 48
+ {} 58 49 {} 59 50 {} 60 51 {} 61 52 {} 62 53 {} 63 54 {} 64 55
+ {} 64 55 {} 66 56 {} 67 57 {} 68 58 {} 69 59 {} 70 60 {} 71 61
+ {} 72 62 {} 73 63 {} 73 63 {} 75 64 {} 76 65 {} 77 66 {} 78 67
+ {} 78 67 {} 78 67 {} 81 68 {} 82 69 {} 83 70 {} 84 71 {} 85 72
+ {} 85 72 {} 87 73 {} 88 74 {} 89 75}
+
+do_execsql_test 5.3.7.1 {
+ 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 {
+ 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.8.1 {
+ 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
+} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0}
+
+do_execsql_test 5.3.8.2 {
+ 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
+} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1}
+
+do_execsql_test 5.3.9.1 {
+ 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
+} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 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 {
+ 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
+} {{} 84 11 {} 84 11 {} 84 11 {} 84 11 {} 84 11 {} 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 {
+ 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
+} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0}
+
+do_execsql_test 5.3.10.2 {
+ 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
+} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1}
+
+do_execsql_test 5.3.11.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win,
+ count(a) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a NULLS LAST GROUPS 6 PRECEDING EXCLUDE GROUP )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
+} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
+ {} {} 0 934 158 27 934 158 27 934 158 27 934 158 27 934 158 27
+ 934 158 27 934 158 27 934 223 8 934 223 8 934 223 8 934 223 8
+ 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8
+ 934 223 8 934 223 8 934 223 8 934 223 21 934 223 21 934 223 21
+ 934 223 21 934 223 21 934 223 21 959 102 50 959 102 50 959 102 50
+ 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50
+ 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50
+ 959 102 50 959 102 50 959 113 39 959 113 39 959 113 39 959 113 39
+ 959 113 39 959 113 39 959 113 39 959 113 39 959 113 39 959 113 39
+ 959 113 39 959 158 34 959 158 34 959 158 34 959 158 34 959 158 34
+ 979 102 46 979 102 46 979 102 46 979 102 46 979 102 46 979 102 46
+ 979 102 46 979 102 47 979 102 47 979 102 47 979 102 47 979 102 47
+ 979 102 47 979 102 47 979 102 47 979 102 47 979 102 49 979 102 49
+ 979 102 49 979 102 49 979 102 49 979 102 49}
+
+do_execsql_test 5.3.11.2 {
+ 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 GROUPS 6 PRECEDING EXCLUDE GROUP )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
+} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ 2309 9 2 2309 9 2 2309 9 2 2309 9 2 2309 9 2 2309 9 2 2309 9 2
+ 2309 9 2 2309 9 2 2309 9 2 2309 9 2 2309 9 2 2309 9 2 5790 22 3
+ 5790 22 3 5790 22 3 5790 22 3 5790 22 3 5790 22 3 7156 28 4
+ 7156 28 4 7156 28 4 7156 28 4 7156 28 4 7156 28 4 7156 28 4
+ 8960 35 5 8960 35 5 8960 35 5 8960 35 5 8960 35 5 10028 68 9
+ 10028 68 9 10028 68 9 10028 68 9 10028 68 9 10028 68 9 10028 68 9
+ 10396 59 8 10396 59 8 10396 59 8 10396 59 8 10396 59 8 10396 59 8
+ 10396 59 8 10396 59 8 10396 59 8 10479 40 6 10479 40 6 10479 40 6
+ 10479 40 6 10479 40 6 10479 40 6 10479 40 6 10479 40 6 10479 40 6
+ 10479 40 6 10479 40 6 11002 75 10 11002 75 10 11002 75 10
+ 11002 75 10 11002 75 10 11002 75 10 11002 75 10 11002 75 10
+ 11002 75 10 11441 51 7 11441 51 7 11441 51 7 11441 51 7
+ 11441 51 7 11441 51 7 11441 51 7 11441 51 7 12145 84 11
+ 12145 84 11 12145 84 11 12145 84 11 12145 84 11 12145 84 11}
+
+do_execsql_test 5.3.12.1 {
SELECT max(c) OVER win,
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ 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
} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
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 {
+do_execsql_test 5.3.12.2 {
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 RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ 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
} {{} 1 1 {} 2 2 {} 2 2 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6
{} 9 7 {} 10 8 {} 14 12 {} 15 13 {} 19 17 {} 20 18 {} 21 19
{} 23 21 {} 25 23 {} 27 25 {} 27 25 {} 34 29 {} 35 30 {} 36 31
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 {
+do_execsql_test 5.3.13.1 {
SELECT max(c) OVER win,
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ 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
} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0
{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0}
-do_execsql_test 5.3.6.2 {
+do_execsql_test 5.3.13.2 {
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 RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE GROUP )
- ORDER BY 1 , 2 , 3
+ 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
} {{} 1 1 {} 2 2 {} 2 2 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6
{} 9 7 {} 10 8 {} 11 9 {} 12 10 {} 13 11 {} 14 12 {} 15 13
{} 16 14 {} 17 15 {} 18 16 {} 19 17 {} 20 18 {} 21 19 {} 22 20
{} 78 67 {} 78 67 {} 81 68 {} 82 69 {} 83 70 {} 84 71 {} 85 72
{} 85 72 {} 87 73 {} 88 74 {} 89 75}
-do_execsql_test 5.3.7.1 {
+do_execsql_test 5.3.14.1 {
SELECT max(c) OVER win,
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c , b , a
+ 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 , 2 , 3
+ 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 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 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}
+ 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.7.2 {
+do_execsql_test 5.3.14.2 {
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 , b , a
+ 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 , 2 , 3
+ 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
count(a) OVER win
FROM t3
WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ 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
dense_rank() OVER win
FROM t3
WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY a
+ WINDOW win AS ( ORDER BY a NULLS FIRST
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ 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
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY a
+ WINDOW win AS ( ORDER BY a NULLS FIRST
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} 81 11 {} 81 11 {} 81 11 {} 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
FROM t3
WINDOW win AS ( PARTITION BY coalesce(a, '')
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ 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
FROM t3
WINDOW win AS ( PARTITION BY coalesce(a, '')
RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ WINDOW win AS ( ORDER BY a NULLS FIRST GROUPS 6 PRECEDING 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 158 1
870 158 1 870 158 1 870 158 1 870 158 1 870 158 1 870 870 0
911 158 1 934 158 1 934 158 9 934 158 9 934 158 9 934 158 9
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ WINDOW win AS ( ORDER BY a NULLS FIRST GROUPS 6 PRECEDING EXCLUDE TIES )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
} {{} 1 1 {} 1 1 355 1 1 399 1 1 629 1 1 667 1 1 2050 7 2
2050 7 2 2050 7 2 2273 7 2 2289 7 2 2359 7 2 2677 7 2 2961 7 2
4359 15 3 4359 15 3 4359 15 3 4359 15 3 4359 15 3 4359 15 3
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ 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
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ 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
} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 25 23 {} 34 29
{} 36 31 {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 43 37 {} 43 37
{} 50 42 {} 60 51 {} 61 52 {} 64 55 {} 64 55 {} 67 57 {} 68 58
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ 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
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE TIES )
- ORDER BY 1 , 2 , 3
+ 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
} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 11 9 {} 12 10
{} 13 11 {} 16 14 {} 17 15 {} 18 16 {} 22 20 {} 24 22 {} 25 23
{} 26 24 {} 31 27 {} 34 29 {} 36 31 {} 38 33 {} 38 33 {} 40 34
min(c) OVER win,
count(a) OVER win
FROM t3
- WINDOW win AS ( ORDER BY c , b , a
+ 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 , 2 , 3
+ 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
rank() OVER win,
dense_rank() OVER win
FROM t3
- WINDOW win AS ( ORDER BY c , b , a
+ 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.8.1 {
+ 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 {
+ 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
+} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 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 {
+ 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 {
+ 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
+} {{} 84 11 {} 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 {
+ 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 {
+ 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
+} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1
+ {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 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.11.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win,
+ count(a) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a NULLS LAST GROUPS 6 PRECEDING EXCLUDE TIES )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
+} {223 223 1 239 239 1 309 309 1 572 572 1 627 627 1 870 870 1
+ 911 911 1 934 158 22 934 158 28 934 158 28 934 158 28 934 158 28
+ 934 158 28 934 158 28 934 223 9 934 223 9 934 223 9 934 223 9
+ 934 223 9 934 223 9 934 223 9 934 223 9 934 223 9 934 223 9
+ 934 223 9 934 223 9 934 223 9 934 223 22 934 223 22 934 223 22
+ 934 223 22 934 223 22 934 934 1 959 102 40 959 102 51 959 102 51
+ 959 102 51 959 102 51 959 102 51 959 102 51 959 102 51 959 102 51
+ 959 102 51 959 102 51 959 102 51 959 102 51 959 102 51 959 102 51
+ 959 102 51 959 113 35 959 113 40 959 113 40 959 113 40 959 113 40
+ 959 113 40 959 113 40 959 113 40 959 113 40 959 113 40 959 113 40
+ 959 158 28 959 158 35 959 158 35 959 158 35 959 158 35 963 102 51
+ 979 102 47 979 102 47 979 102 47 979 102 47 979 102 47 979 102 47
+ 979 102 47 979 102 48 979 102 48 979 102 48 979 102 48 979 102 48
+ 979 102 48 979 102 48 979 102 48 979 102 48 979 102 49 979 102 49
+ 979 102 49 979 102 49 979 102 49 979 102 49 979 102 51}
+
+do_execsql_test 5.4.11.2 {
+ 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 GROUPS 6 PRECEDING EXCLUDE TIES )
+ ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
+} {{} 1 1 {} 1 1 {} 1 1 223 1 1 239 1 1 309 1 1 627 1 1 911 1 1
+ 2309 9 2 2309 9 2 2309 9 2 2309 9 2 2309 9 2 2309 9 2 2556 9 2
+ 2702 9 2 2702 9 2 2708 9 2 2942 9 2 3014 9 2 3020 9 2 5790 22 3
+ 5790 22 3 5790 22 3 5790 22 3 6397 22 3 6549 22 3 7156 28 4
+ 7156 28 4 7156 28 4 7156 28 4 7156 28 4 8001 28 4 8115 28 4
+ 8960 35 5 8960 35 5 9073 35 5 9589 35 5 9737 35 5 10028 68 9
+ 10028 68 9 10028 68 9 10396 59 8 10396 59 8 10396 59 8 10396 59 8
+ 10449 68 9 10471 68 9 10479 40 6 10479 40 6 10479 40 6 10479 40 6
+ 10479 40 6 10479 40 6 10479 40 6 10479 40 6 10479 40 6 10529 59 8
+ 10699 68 9 10751 59 8 10774 40 6 10833 68 9 11002 75 10
+ 11002 75 10 11002 75 10 11002 75 10 11079 59 8 11115 75 10
+ 11146 40 6 11259 75 10 11359 59 8 11375 59 8 11441 51 7
+ 11441 51 7 11441 51 7 11441 51 7 11441 51 7 11441 51 7 11776 51 7
+ 11841 75 10 11841 75 10 11901 75 10 12145 84 11 12145 84 11
+ 12370 51 7 12500 84 11 12544 84 11 12774 84 11 12812 84 11}
+
+do_execsql_test 5.4.12.1 {
+ 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 {
+ 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
+} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 25 23 {} 34 29
+ {} 36 31 {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 43 37 {} 43 37
+ {} 50 42 {} 60 51 {} 61 52 {} 64 55 {} 64 55 {} 67 57 {} 68 58
+ {} 69 59 {} 70 60 {} 72 62 {} 78 67 {} 78 67 {} 78 67 {} 85 72
+ {} 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 {
+ 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 {
+ 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
+} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 11 9 {} 12 10
+ {} 13 11 {} 16 14 {} 17 15 {} 18 16 {} 22 20 {} 24 22 {} 25 23
+ {} 26 24 {} 31 27 {} 34 29 {} 36 31 {} 38 33 {} 38 33 {} 40 34
+ {} 41 35 {} 43 37 {} 43 37 {} 49 41 {} 50 42 {} 51 43 {} 54 45
+ {} 59 50 {} 60 51 {} 61 52 {} 63 54 {} 64 55 {} 64 55 {} 67 57
+ {} 68 58 {} 69 59 {} 70 60 {} 72 62 {} 75 64 {} 76 65 {} 78 67
+ {} 78 67 {} 78 67 {} 84 71 {} 85 72 {} 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.14.1 {
+ 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 {
+ 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 , 2 , 3
+ 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
do_execsql_test 6.1 {
SELECT group_concat(a, '.') OVER (
- ORDER BY b RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING
+ ORDER BY b NULLS FIRST RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING
)
FROM t2
} {A.B A.B {}}
do_execsql_test 6.2 {
SELECT group_concat(a, '.') OVER (
- ORDER BY b DESC RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING
+ ORDER BY b DESC NULLS LAST RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING
)
FROM t2
} {{} A.B A.B}