) FROM t1 ORDER BY 1 ;
} {5 6 8 9 10}
+#==========================================================================
+
+do_execsql_test 5.0 {
+ INSERT INTO t3 VALUES
+ (NULL, 'bb', 355), (NULL, 'cc', 158), (NULL, 'aa', 399),
+ ('JJ', NULL, 839), ('FF', NULL, 618), ('BB', NULL, 393),
+ (NULL, 'bb', 629), (NULL, NULL, 667), (NULL, NULL, 870);
+} {}
+
+do_execsql_test 5.1.1.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
+ ORDER BY 1 , 2
+} {979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102}
+
+do_execsql_test 5.1.1.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
+ ORDER BY 1 , 2
+} {23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1}
+
+do_execsql_test 5.1.2.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
+ ORDER BY 1 , 2
+} {899 113 899 113 899 113 899 113 899 113 899 113 899 113
+ 899 113 899 113 899 113 899 113 899 113 899 113 899 113
+ 899 113 899 113 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 113 979 113 979 113 979 113 979 113
+ 979 113 979 113 979 113 979 113 979 113 979 113 979 113
+ 979 113 979 113 979 113 979 113 979 113}
+
+do_execsql_test 5.1.2.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
+ ORDER BY 1 , 2
+} {2947 81 2947 81 2947 81 2947 81 2947 81 2947 81 2947 81
+ 2947 81 2947 81 5287 74 5287 74 5287 74 5287 74 5287 74
+ 5287 74 5287 74 8400 65 8400 65 8400 65 8400 65 8400 65
+ 8400 65 8400 65 8400 65 8400 65 9664 57 9664 57 9664 57
+ 9664 57 9664 57 9664 57 9664 57 9664 57 10626 46 10626 46
+ 10626 46 10626 46 10626 46 10626 46 10626 46 10626 46 10626 46
+ 10626 46 10626 46 12145 41 12145 41 12145 41 12145 41 12145 41
+ 13949 34 13949 34 13949 34 13949 34 13949 34 13949 34 13949 34
+ 15315 28 15315 28 15315 28 15315 28 15315 28 15315 28 18796 15
+ 18796 15 18796 15 18796 15 18796 15 18796 15 18796 15 18796 15
+ 18796 15 18796 15 18796 15 18796 15 18796 15 21105 7 21105 7
+ 21105 7 21105 7 21105 7 21105 7 21105 7 21105 7 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1}
+
+do_execsql_test 5.1.3.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( PARTITION BY coalesce(a, '')
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
+ ORDER BY 1 , 2
+} {777 113 777 113 777 113 777 113 777 113 805 250 805 250
+ 805 250 805 250 805 250 805 250 805 250 822 158 822 158
+ 822 158 822 158 822 158 822 158 840 247 840 247 840 247
+ 840 247 840 247 840 247 840 247 840 247 840 247 840 247
+ 840 247 840 247 840 247 870 158 870 158 870 158 870 158
+ 870 158 870 158 899 113 899 113 899 113 899 113 899 113
+ 899 113 899 113 899 113 899 113 934 223 934 223 934 223
+ 934 223 934 223 934 223 934 223 934 223 938 102 938 102
+ 938 102 938 102 938 102 938 102 938 102 938 102 938 102
+ 938 102 938 102 938 148 938 148 938 148 938 148 938 148
+ 938 148 938 148 938 148 959 224 959 224 959 224 959 224
+ 959 224 959 224 959 224 979 133 979 133 979 133 979 133
+ 979 133 979 133 979 133 979 133 979 133}
+
+do_execsql_test 5.1.3.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( PARTITION BY coalesce(a, '')
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS )
+ ORDER BY 1 , 2
+} {962 1 962 1 962 1 962 1 962 1 962 1 962 1 962 1 962 1
+ 962 1 962 1 1264 1 1264 1 1264 1 1264 1 1264 1 1264 1
+ 1264 1 1264 1 1366 1 1366 1 1366 1 1366 1 1366 1 1366 1
+ 1519 1 1519 1 1519 1 1519 1 1519 1 1804 1 1804 1 1804 1
+ 1804 1 1804 1 1804 1 1804 1 2050 1 2050 1 2050 1 2050 1
+ 2050 1 2050 1 2309 1 2309 1 2309 1 2309 1 2309 1 2309 1
+ 2309 1 2309 1 2340 1 2340 1 2340 1 2340 1 2340 1 2340 1
+ 2340 1 2947 1 2947 1 2947 1 2947 1 2947 1 2947 1 2947 1
+ 2947 1 2947 1 3113 1 3113 1 3113 1 3113 1 3113 1 3113 1
+ 3113 1 3113 1 3113 1 3481 1 3481 1 3481 1 3481 1 3481 1
+ 3481 1 3481 1 3481 1 3481 1 3481 1 3481 1 3481 1 3481 1}
+
+do_execsql_test 5.1.4.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE NO OTHERS )
+ ORDER BY 1 , 2
+} {870 158 870 158 870 158 870 158 870 158 870 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 959 102 959 102
+ 959 102 959 102 959 102 959 102 959 102 959 102 959 102
+ 959 102 959 102 959 102 959 102 959 102 959 102 959 102
+ 959 102 959 102 959 102 959 113 959 113 959 113 959 113
+ 959 113 959 158 959 158 959 158 959 158 959 158 959 158
+ 959 158 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102}
+
+do_execsql_test 5.1.4.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE NO OTHERS )
+ ORDER BY 1 , 2
+} {2050 1 2050 1 2050 1 2050 1 2050 1 2050 1 4359 7 4359 7
+ 4359 7 4359 7 4359 7 4359 7 4359 7 4359 7 7840 15 7840 15
+ 7840 15 7840 15 7840 15 7840 15 7840 15 7840 15 7840 15
+ 7840 15 7840 15 7840 15 7840 15 9206 28 9206 28 9206 28
+ 9206 28 9206 28 9206 28 11010 34 11010 34 11010 34 11010 34
+ 11010 34 11010 34 11010 34 12368 74 12368 74 12368 74 12368 74
+ 12368 74 12368 74 12368 74 12529 41 12529 41 12529 41 12529 41
+ 12529 41 12705 57 12705 57 12705 57 12705 57 12705 57 12705 57
+ 12705 57 12705 57 13491 46 13491 46 13491 46 13491 46 13491 46
+ 13491 46 13491 46 13491 46 13491 46 13491 46 13491 46 13509 65
+ 13509 65 13509 65 13509 65 13509 65 13509 65 13509 65 13509 65
+ 13509 65 13949 81 13949 81 13949 81 13949 81 13949 81 13949 81
+ 13949 81 13949 81 13949 81}
+
+do_execsql_test 5.1.5.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE NO OTHERS )
+ ORDER BY 1 , 2
+} {102 102 113 113 113 113 133 133 148 148 160 158 160 158
+ 160 158 208 208 224 223 224 223 239 234 239 234 239 234
+ 252 247 257 247 257 247 257 250 257 252 295 295 309 309
+ 336 330 336 330 336 330 346 346 355 354 355 354 355 354
+ 399 393 399 393 399 393 399 393 399 393 412 412 421 421
+ 430 430 443 443 480 480 480 480 574 572 574 572 607 607
+ 618 618 618 618 634 627 634 627 634 627 634 627 634 629
+ 652 652 667 660 671 667 671 667 671 667 671 667 683 683
+ 711 705 716 705 716 711 730 726 730 726 762 759 768 759
+ 768 762 768 762 777 777 792 786 794 786 794 786 794 790
+ 805 805 822 822 845 839 845 839 845 839 845 839 845 839
+ 870 870 870 870 870 870 899 899 911 911 934 929 938 929
+ 938 934 938 934 963 959 963 959 979 979}
+
+do_execsql_test 5.1.5.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ 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
+} {{} 1 {} 5 {} 6 {} 6 {} 8 {} 9 {} 25 {} 34 {} 36 {} 38
+ {} 38 {} 40 {} 41 {} 43 {} 43 {} 50 {} 60 {} 61 {} 64
+ {} 64 {} 67 {} 68 {} 69 {} 70 {} 72 {} 78 {} 78 {} 78
+ {} 85 {} 85 133 4 223 10 223 11 226 2 226 2 239 12 239 13
+ 239 14 247 15 257 18 257 19 295 20 309 21 335 22 335 23
+ 335 24 421 35 443 37 504 16 504 17 607 42 683 56 710 26
+ 710 27 710 27 711 59 759 62 759 63 777 66 805 71 899 81
+ 911 82 929 83 929 84 979 89 1334 51 1416 57 1416 58 1584 29
+ 1584 29 1584 31 1584 32 1584 32 1891 49 1922 87 1922 88
+ 2005 52 2005 52 2005 54 2005 55 2518 45 2518 46 2518 46
+ 2518 48 2523 73 2523 73 2523 75 2523 76 2523 77}
+
+do_execsql_test 5.2.1.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW )
+ ORDER BY 1 , 2
+} {963 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 113}
+
+do_execsql_test 5.2.1.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW )
+ ORDER BY 1 , 2
+} {22176 1 22192 1 22196 1 22226 1 22244 1 22256 1 22310 1
+ 22316 1 22316 1 22350 1 22378 1 22396 1 22444 1 22450 1
+ 22472 1 22484 1 22488 1 22488 1 22522 1 22526 1 22526 1
+ 22528 1 22548 1 22712 1 22734 1 22756 1 22756 1 22762 1
+ 22762 1 22800 1 22800 1 22820 1 22846 1 22860 1 22898 1
+ 22908 1 22916 1 22932 1 23022 1 23042 1 23042 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1 23155 1
+ 23155 1 23155 1 23155 1 23155 1 23155 1}
+
+do_execsql_test 5.2.2.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW )
+ ORDER BY 1 , 2
+} {839 113 899 113 899 113 899 113 899 113 899 113 899 113
+ 899 113 899 113 899 113 899 113 899 113 899 113 899 113
+ 899 113 899 234 963 113 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 113 979 113 979 113 979 113 979 113
+ 979 113 979 113 979 113 979 113 979 113 979 113 979 113
+ 979 113 979 113 979 113 979 113 979 113}
+
+do_execsql_test 5.2.2.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ 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
+} {2048 81 2108 81 2108 81 2690 81 2834 81 2947 81 2947 81
+ 2947 81 2947 81 4482 74 4616 74 4844 74 4866 74 5287 74
+ 5287 74 5287 74 7421 65 7437 65 7717 65 8045 65 8267 65
+ 8400 65 8400 65 8400 65 8400 65 8735 57 9329 57 9664 57
+ 9664 57 9664 57 9664 57 9664 57 9664 57 9959 46 10331 46
+ 10626 46 10626 46 10626 46 10626 46 10626 46 10626 46 10626 46
+ 10626 46 10626 46 11368 41 11516 41 12032 41 12145 41 12145 41
+ 12990 34 13104 34 13949 34 13949 34 13949 34 13949 34 13949 34
+ 14556 28 14708 28 15315 28 15315 28 15315 28 15315 28 18085 15
+ 18091 15 18163 15 18397 15 18403 15 18403 15 18549 15 18796 15
+ 18796 15 18796 15 18796 15 18796 15 18796 15 20194 7 20478 7
+ 20796 7 20866 7 20882 7 21105 7 21105 7 21105 7 22488 1
+ 22526 1 22756 1 22800 1 23155 1 23155 1}
+
+do_execsql_test 5.2.3.1 {
+ SELECT max(c) OVER win,
+ min(c) 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
+} {667 158 671 250 759 158 768 113 777 113 777 113 777 113
+ 777 252 792 247 805 250 805 250 805 250 805 250 805 250
+ 805 398 822 158 822 158 822 158 822 158 822 346 839 113
+ 840 247 840 247 840 247 840 247 840 247 840 247 840 247
+ 840 247 840 247 840 247 840 247 840 393 845 224 870 102
+ 870 158 870 158 870 158 870 158 870 355 899 113 899 113
+ 899 113 899 113 899 113 899 113 899 113 899 234 911 223
+ 929 148 934 223 934 223 934 223 934 223 934 223 934 223
+ 934 239 938 102 938 102 938 102 938 102 938 102 938 102
+ 938 102 938 102 938 102 938 148 938 148 938 148 938 148
+ 938 148 938 148 938 160 938 208 959 224 959 224 959 224
+ 959 224 959 224 959 238 963 133 979 133 979 133 979 133
+ 979 133 979 133 979 133 979 133 979 330}
+
+do_execsql_test 5.2.3.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ 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
+} {295 1 335 1 607 1 667 1 742 1 759 1 845 1 890 1 929 1
+ 959 1 962 1 962 1 962 1 962 1 962 1 962 1 962 1 962 1
+ 962 1 1264 1 1264 1 1264 1 1264 1 1264 1 1264 1 1366 1
+ 1366 1 1366 1 1366 1 1383 1 1398 1 1406 1 1421 1 1519 1
+ 1519 1 1535 1 1651 1 1669 1 1682 1 1695 1 1804 1 1804 1
+ 1804 1 1804 1 1804 1 1897 1 1919 1 2000 1 2048 1 2050 1
+ 2050 1 2070 1 2086 1 2108 1 2108 1 2134 1 2150 1 2309 1
+ 2309 1 2309 1 2340 1 2340 1 2340 1 2430 1 2690 1 2758 1
+ 2770 1 2776 1 2834 1 2848 1 2947 1 2947 1 2947 1 2947 1
+ 2980 1 3082 1 3088 1 3088 1 3113 1 3113 1 3113 1 3113 1
+ 3234 1 3481 1 3481 1 3481 1 3481 1 3481 1 3481 1}
+
+do_execsql_test 5.2.4.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE CURRENT ROW )
+ ORDER BY 1 , 2
+} {667 158 870 158 870 158 870 158 870 158 870 355 911 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 959 102
+ 959 102 959 102 959 102 959 102 959 102 959 102 959 102
+ 959 102 959 102 959 102 959 102 959 102 959 102 959 102
+ 959 102 959 102 959 102 959 113 959 113 959 113 959 113
+ 959 113 959 158 959 158 959 158 959 158 959 158 959 158
+ 959 158 963 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102}
+
+do_execsql_test 5.2.4.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE CURRENT ROW )
+ ORDER BY 1 , 2
+} {1383 1 1421 1 1651 1 1695 1 2050 1 2050 1 3448 7 3732 7
+ 4050 7 4120 7 4136 7 4359 7 4359 7 4359 7 7129 15 7135 15
+ 7207 15 7441 15 7447 15 7447 15 7593 15 7840 15 7840 15
+ 7840 15 7840 15 7840 15 7840 15 8447 28 8599 28 9206 28
+ 9206 28 9206 28 9206 28 10051 34 10165 34 11010 34 11010 34
+ 11010 34 11010 34 11010 34 11563 74 11697 74 11752 41 11776 57
+ 11900 41 11925 74 11947 74 12368 74 12368 74 12368 74 12370 57
+ 12416 41 12529 41 12529 41 12530 65 12546 65 12705 57 12705 57
+ 12705 57 12705 57 12705 57 12705 57 12824 46 12826 65 13050 81
+ 13110 81 13110 81 13154 65 13196 46 13376 65 13491 46 13491 46
+ 13491 46 13491 46 13491 46 13491 46 13491 46 13491 46 13491 46
+ 13509 65 13509 65 13509 65 13509 65 13692 81 13836 81 13949 81
+ 13949 81 13949 81 13949 81}
+
+do_execsql_test 5.2.5.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE CURRENT ROW )
+ ORDER BY 1 , 2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} 113 113 113 113 158 158 160 158 160 158 223 223
+ 224 224 238 234 239 234 239 238 252 250 256 252 257 247
+ 257 247 257 250 335 330 336 330 336 335 355 354 355 354
+ 355 355 399 393 399 393 399 393 399 393 399 393 480 480
+ 480 480 572 572 574 574 618 618 618 618 633 629 634 627
+ 634 627 634 627 634 629 667 667 670 667 671 667 671 667
+ 671 667 711 711 711 711 716 705 726 726 730 730 762 762
+ 768 759 768 762 768 762 792 790 792 790 794 786 794 786
+ 844 839 845 839 845 839 845 839 845 839 870 870 870 870
+ 870 870 934 934 938 929 938 934 938 934 959 959 963 963}
+
+do_execsql_test 5.2.5.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ 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
+} {{} 1 {} 4 {} 5 {} 6 {} 6 {} 8 {} 9 {} 10 {} 14 {} 15
+ {} 19 {} 20 {} 21 {} 23 {} 25 {} 34 {} 35 {} 36 {} 37
+ {} 38 {} 38 {} 40 {} 41 {} 42 {} 43 {} 43 {} 50 {} 56
+ {} 60 {} 61 {} 62 {} 64 {} 64 {} 66 {} 67 {} 68 {} 69
+ {} 70 {} 71 {} 72 {} 78 {} 78 {} 78 {} 81 {} 82 {} 83
+ {} 85 {} 85 {} 89 113 2 113 2 223 11 239 12 239 13 257 18
+ 335 22 335 24 355 27 355 27 504 16 504 17 705 58 710 26
+ 711 57 711 59 759 63 929 84 959 88 963 87 1185 32 1185 32
+ 1191 29 1191 29 1334 51 1334 55 1338 52 1338 52 1584 31
+ 1678 77 1684 73 1684 73 1885 48 1889 46 1889 46 1891 45
+ 1891 49 2005 54 2523 75 2523 76}
+
+do_execsql_test 5.3.1.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
+ ORDER BY 1 , 2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 5.3.1.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
+ ORDER BY 1 , 2
+} {{} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 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.2.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
+ ORDER BY 1 , 2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ 899 113 899 113 899 113 899 113 899 113 899 113 899 113
+ 899 113 899 113 899 113 899 113 899 113 899 113 899 113
+ 899 113 899 113 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 113 979 113
+ 979 113 979 113 979 113 979 113 979 113 979 113 979 113
+ 979 113 979 113 979 113 979 113 979 113 979 113 979 113
+ 979 113 979 113 979 113}
+
+do_execsql_test 5.3.2.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
+ ORDER BY 1 , 2
+} {{} 81 {} 81 {} 81 {} 81 {} 81 {} 81 {} 81 {} 81 {} 81
+ 2947 74 2947 74 2947 74 2947 74 2947 74 2947 74 2947 74
+ 5287 65 5287 65 5287 65 5287 65 5287 65 5287 65 5287 65
+ 5287 65 5287 65 8400 57 8400 57 8400 57 8400 57 8400 57
+ 8400 57 8400 57 8400 57 9664 46 9664 46 9664 46 9664 46
+ 9664 46 9664 46 9664 46 9664 46 9664 46 9664 46 9664 46
+ 10626 41 10626 41 10626 41 10626 41 10626 41 12145 34 12145 34
+ 12145 34 12145 34 12145 34 12145 34 12145 34 13949 28 13949 28
+ 13949 28 13949 28 13949 28 13949 28 15315 15 15315 15 15315 15
+ 15315 15 15315 15 15315 15 15315 15 15315 15 15315 15 15315 15
+ 15315 15 15315 15 15315 15 18796 7 18796 7 18796 7 18796 7
+ 18796 7 18796 7 18796 7 18796 7 21105 1 21105 1 21105 1
+ 21105 1 21105 1 21105 1}
+
+do_execsql_test 5.3.3.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( PARTITION BY coalesce(a, '')
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
+ ORDER BY 1 , 2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 5.3.3.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( PARTITION BY coalesce(a, '')
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP )
+ ORDER BY 1 , 2
+} {{} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 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.4.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE GROUP )
+ ORDER BY 1 , 2
+} {{} {} {} {} {} {} {} {} {} {} {} {} 870 158 870 158 870 158
+ 870 158 870 158 870 158 870 158 870 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 959 102 959 102 959 102 959 102
+ 959 102 959 102 959 102 959 102 959 102 959 102 959 102
+ 959 102 959 102 959 102 959 102 959 102 959 102 959 113
+ 959 113 959 113 959 113 959 113 959 113 959 113 959 113
+ 959 113 959 113 959 113 959 158 959 158 959 158 959 158
+ 959 158 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102}
+
+do_execsql_test 5.3.4.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE GROUP )
+ ORDER BY 1 , 2
+} {{} 1 {} 1 {} 1 {} 1 {} 1 {} 1 2050 7 2050 7 2050 7 2050 7
+ 2050 7 2050 7 2050 7 2050 7 4359 15 4359 15 4359 15 4359 15
+ 4359 15 4359 15 4359 15 4359 15 4359 15 4359 15 4359 15
+ 4359 15 4359 15 7840 28 7840 28 7840 28 7840 28 7840 28
+ 7840 28 9206 34 9206 34 9206 34 9206 34 9206 34 9206 34
+ 9206 34 10028 74 10028 74 10028 74 10028 74 10028 74 10028 74
+ 10028 74 10396 65 10396 65 10396 65 10396 65 10396 65 10396 65
+ 10396 65 10396 65 10396 65 11002 81 11002 81 11002 81 11002 81
+ 11002 81 11002 81 11002 81 11002 81 11002 81 11010 41 11010 41
+ 11010 41 11010 41 11010 41 11441 57 11441 57 11441 57 11441 57
+ 11441 57 11441 57 11441 57 11441 57 12529 46 12529 46 12529 46
+ 12529 46 12529 46 12529 46 12529 46 12529 46 12529 46 12529 46
+ 12529 46}
+
+do_execsql_test 5.3.5.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE GROUP )
+ ORDER BY 1 , 2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}
+ {} {} {} {} 158 158 160 160 160 160 223 223 224 224 238 234
+ 239 234 239 238 252 250 256 252 257 247 257 247 257 250
+ 335 330 336 330 336 335 354 354 354 354 355 355 398 393
+ 398 393 399 393 399 398 399 398 572 572 574 574 633 629
+ 634 627 634 627 634 627 634 629 667 667 670 667 671 667
+ 671 670 671 670 711 711 711 711 716 705 726 726 730 730
+ 762 762 762 762 762 762 768 759 792 790 792 790 794 786
+ 794 786 844 839 845 839 845 839 845 840 845 840 934 934
+ 934 934 934 934 938 929 959 959 963 963}
+
+do_execsql_test 5.3.5.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE GROUP )
+ ORDER BY 1 , 2
+} {{} 1 {} 2 {} 2 {} 4 {} 5 {} 6 {} 6 {} 8 {} 9 {} 10
+ {} 14 {} 15 {} 19 {} 20 {} 21 {} 23 {} 25 {} 27 {} 27
+ {} 34 {} 35 {} 36 {} 37 {} 38 {} 38 {} 40 {} 41 {} 42
+ {} 43 {} 43 {} 50 {} 56 {} 60 {} 61 {} 62 {} 64 {} 64
+ {} 66 {} 67 {} 68 {} 69 {} 70 {} 71 {} 72 {} 78 {} 78
+ {} 78 {} 81 {} 82 {} 83 {} 85 {} 85 {} 89 223 11 239 12
+ 239 13 257 18 335 22 335 24 504 16 504 17 671 52 671 52
+ 705 58 710 26 711 57 711 59 759 63 786 32 786 32 798 29
+ 798 29 845 73 845 73 929 84 959 88 963 87 1260 46 1260 46
+ 1334 51 1334 55 1584 31 1678 77 1885 48 1891 45 1891 49
+ 2005 54 2523 75 2523 76}
+
+do_execsql_test 5.4.1.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
+ ORDER BY 1 , 2
+} {102 102 113 113 113 113 133 133 148 148 158 158 158 158
+ 160 160 208 208 223 223 224 224 234 234 238 238 239 239
+ 247 247 250 250 252 252 256 256 257 257 295 295 309 309
+ 330 330 335 335 336 336 346 346 354 354 355 355 355 355
+ 393 393 393 393 398 398 399 399 399 399 412 412 421 421
+ 430 430 443 443 480 480 480 480 572 572 574 574 607 607
+ 618 618 618 618 627 627 629 629 629 629 633 633 634 634
+ 652 652 660 660 667 667 667 667 670 670 671 671 683 683
+ 705 705 711 711 716 716 726 726 730 730 759 759 762 762
+ 768 768 768 768 777 777 786 786 790 790 792 792 794 794
+ 805 805 822 822 839 839 839 839 840 840 844 844 845 845
+ 870 870 870 870 870 870 899 899 911 911 929 929 934 934
+ 938 938 938 938 959 959 963 963 979 979}
+
+do_execsql_test 5.4.1.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
+ ORDER BY 1 , 2
+} {{} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 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 113 1 133 1 223 1 239 1 247 1
+ 257 1 295 1 309 1 335 1 355 1 355 1 393 1 393 1 399 1
+ 399 1 421 1 443 1 607 1 627 1 629 1 629 1 633 1 667 1
+ 667 1 671 1 683 1 705 1 711 1 759 1 777 1 805 1 839 1
+ 839 1 845 1 899 1 911 1 929 1 959 1 963 1 979 1}
+
+do_execsql_test 5.4.2.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
+ ORDER BY 1 , 2
+} {113 113 234 234 257 257 336 336 354 354 768 768 839 839
+ 839 839 899 113 899 113 899 113 899 113 899 113 899 113
+ 899 113 899 113 899 113 899 113 899 113 899 113 899 113
+ 899 113 899 899 963 113 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 113 979 113 979 113 979 113 979 113 979 113 979 113
+ 979 113 979 113 979 113 979 113 979 113 979 113 979 113
+ 979 113 979 113 979 113 979 113 979 113}
+
+do_execsql_test 5.4.2.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
+ ORDER BY 1 , 2
+} {{} 81 {} 81 {} 81 {} 81 113 81 257 81 839 81 839 81 899 81
+ 2947 74 2947 74 2947 74 3368 74 3390 74 3618 74 3752 74
+ 5287 65 5287 65 5287 65 5287 65 5420 65 5642 65 5970 65
+ 6250 65 6266 65 8400 57 8400 57 8400 57 8400 57 8400 57
+ 8400 57 8735 57 9329 57 9664 46 9664 46 9664 46 9664 46
+ 9664 46 9664 46 9664 46 9664 46 9664 46 9959 46 10331 46
+ 10626 41 10626 41 10739 41 11255 41 11403 41 12145 34 12145 34
+ 12145 34 12145 34 12145 34 12990 34 13104 34 13949 28 13949 28
+ 13949 28 13949 28 14556 28 14708 28 15315 15 15315 15 15315 15
+ 15315 15 15315 15 15315 15 15562 15 15708 15 15708 15 15714 15
+ 15948 15 16020 15 16026 15 18796 7 18796 7 18796 7 19019 7
+ 19035 7 19105 7 19423 7 19707 7 21105 1 21105 1 21460 1
+ 21504 1 21734 1 21772 1}
+
+do_execsql_test 5.4.3.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( PARTITION BY coalesce(a, '')
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
+ ORDER BY 1 , 2
+} {102 102 113 113 113 113 133 133 148 148 158 158 158 158
+ 160 160 208 208 223 223 224 224 234 234 238 238 239 239
+ 247 247 250 250 252 252 256 256 257 257 295 295 309 309
+ 330 330 335 335 336 336 346 346 354 354 355 355 355 355
+ 393 393 393 393 398 398 399 399 399 399 412 412 421 421
+ 430 430 443 443 480 480 480 480 572 572 574 574 607 607
+ 618 618 618 618 627 627 629 629 629 629 633 633 634 634
+ 652 652 660 660 667 667 667 667 670 670 671 671 683 683
+ 705 705 711 711 716 716 726 726 730 730 759 759 762 762
+ 768 768 768 768 777 777 786 786 790 790 792 792 794 794
+ 805 805 822 822 839 839 839 839 840 840 844 844 845 845
+ 870 870 870 870 870 870 899 899 911 911 929 929 934 934
+ 938 938 938 938 959 959 963 963 979 979}
+
+do_execsql_test 5.4.3.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( PARTITION BY coalesce(a, '')
+ RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES )
+ ORDER BY 1 , 2
+} {{} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1
+ {} 1 {} 1 {} 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 113 1 133 1 223 1 239 1 247 1
+ 257 1 295 1 309 1 335 1 355 1 355 1 393 1 393 1 399 1
+ 399 1 421 1 443 1 607 1 627 1 629 1 629 1 633 1 667 1
+ 667 1 671 1 683 1 705 1 711 1 759 1 777 1 805 1 839 1
+ 839 1 845 1 899 1 911 1 929 1 959 1 963 1 979 1}
+
+do_execsql_test 5.4.4.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE TIES )
+ ORDER BY 1 , 2
+} {158 158 355 355 399 399 629 629 667 667 870 158 870 158
+ 870 158 870 158 870 158 870 158 870 870 911 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 934 158 934 158 934 158
+ 934 158 934 158 934 158 934 158 959 102 959 102 959 102
+ 959 102 959 102 959 102 959 102 959 102 959 102 959 102
+ 959 102 959 102 959 102 959 102 959 102 959 102 959 113
+ 959 113 959 113 959 113 959 113 959 113 959 113 959 113
+ 959 113 959 113 959 113 959 158 959 158 959 158 959 158
+ 959 158 963 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102 979 102 979 102
+ 979 102 979 102 979 102 979 102 979 102}
+
+do_execsql_test 5.4.4.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE TIES )
+ ORDER BY 1 , 2
+} {{} 1 {} 1 355 1 399 1 629 1 667 1 2050 7 2050 7 2050 7
+ 2273 7 2289 7 2359 7 2677 7 2961 7 4359 15 4359 15 4359 15
+ 4359 15 4359 15 4359 15 4606 15 4752 15 4752 15 4758 15
+ 4992 15 5064 15 5070 15 7840 28 7840 28 7840 28 7840 28
+ 8447 28 8599 28 9206 34 9206 34 9206 34 9206 34 9206 34
+ 10028 74 10028 74 10028 74 10051 34 10165 34 10396 65 10396 65
+ 10396 65 10396 65 10449 74 10471 74 10529 65 10699 74 10751 65
+ 10833 74 11002 81 11002 81 11002 81 11002 81 11010 41 11010 41
+ 11079 65 11115 81 11123 41 11259 81 11359 65 11375 65 11441 57
+ 11441 57 11441 57 11441 57 11441 57 11441 57 11639 41 11776 57
+ 11787 41 11841 81 11841 81 11901 81 12370 57 12529 46 12529 46
+ 12529 46 12529 46 12529 46 12529 46 12529 46 12529 46 12529 46
+ 12824 46 13196 46}
+
+do_execsql_test 5.4.5.1 {
+ SELECT max(c) OVER win,
+ min(c) OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE TIES )
+ ORDER BY 1 , 2
+} {102 102 113 113 113 113 133 133 148 148 160 158 160 158
+ 160 158 208 208 224 223 224 223 239 234 239 234 239 234
+ 252 247 257 247 257 247 257 250 257 252 295 295 309 309
+ 336 330 336 330 336 330 346 346 355 354 355 354 355 354
+ 399 393 399 393 399 393 399 393 399 393 412 412 421 421
+ 430 430 443 443 480 480 480 480 574 572 574 572 607 607
+ 618 618 618 618 634 627 634 627 634 627 634 627 634 629
+ 652 652 667 660 671 667 671 667 671 667 671 667 683 683
+ 711 705 716 705 716 711 730 726 730 726 762 759 768 759
+ 768 762 768 762 777 777 792 786 794 786 794 786 794 790
+ 805 805 822 822 845 839 845 839 845 839 845 839 845 839
+ 870 870 870 870 870 870 899 899 911 911 934 929 938 929
+ 938 934 938 934 963 959 963 959 979 979}
+
+do_execsql_test 5.4.5.2 {
+ SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
+ rank() OVER win
+ FROM t3
+ WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE TIES )
+ ORDER BY 1 , 2
+} {{} 1 {} 5 {} 6 {} 6 {} 8 {} 9 {} 25 {} 34 {} 36 {} 38
+ {} 38 {} 40 {} 41 {} 43 {} 43 {} 50 {} 60 {} 61 {} 64
+ {} 64 {} 67 {} 68 {} 69 {} 70 {} 72 {} 78 {} 78 {} 78
+ {} 85 {} 85 113 2 113 2 133 4 223 10 223 11 239 12 239 13
+ 239 14 247 15 257 18 257 19 295 20 309 21 335 22 335 23
+ 335 24 355 27 355 27 421 35 443 37 504 16 504 17 607 42
+ 683 56 710 26 711 59 759 62 759 63 777 66 805 71 899 81
+ 911 82 929 83 929 84 979 89 1185 32 1185 32 1191 29 1191 29
+ 1334 51 1338 52 1338 52 1416 57 1416 58 1584 31 1684 73
+ 1684 73 1889 46 1889 46 1891 49 1922 87 1922 88 2005 54
+ 2005 55 2518 45 2518 48 2523 75 2523 76 2523 77}
+
finish_test