xref: /sqlite-3.40.0/test/window2.test (revision c3a20c19)
1b6e9f7a4Sdan# 2018 May 19
2b6e9f7a4Sdan#
3b6e9f7a4Sdan# The author disclaims copyright to this source code.  In place of
4b6e9f7a4Sdan# a legal notice, here is a blessing:
5b6e9f7a4Sdan#
6b6e9f7a4Sdan#    May you do good and not evil.
7b6e9f7a4Sdan#    May you find forgiveness for yourself and forgive others.
8b6e9f7a4Sdan#    May you share freely, never taking more than you give.
9b6e9f7a4Sdan#
10b6e9f7a4Sdan#***********************************************************************
11b6e9f7a4Sdan# This file implements regression tests for SQLite library.
12b6e9f7a4Sdan#
13b6e9f7a4Sdan
14b6e9f7a4Sdan####################################################
15b6e9f7a4Sdan# DO NOT EDIT! THIS FILE IS AUTOMATICALLY GENERATED!
16b6e9f7a4Sdan####################################################
17b6e9f7a4Sdan
18b6e9f7a4Sdanset testdir [file dirname $argv0]
19b6e9f7a4Sdansource $testdir/tester.tcl
20b6e9f7a4Sdanset testprefix window2
21b6e9f7a4Sdan
22b6e9f7a4Sdando_execsql_test 1.0 {
23b6e9f7a4Sdan  DROP TABLE IF EXISTS t1;
24b6e9f7a4Sdan  CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c TEXT, d INTEGER);
25b6e9f7a4Sdan  INSERT INTO t1 VALUES(1, 'odd',  'one',   1);
26b6e9f7a4Sdan  INSERT INTO t1 VALUES(2, 'even', 'two',   2);
27b6e9f7a4Sdan  INSERT INTO t1 VALUES(3, 'odd',  'three', 3);
28b6e9f7a4Sdan  INSERT INTO t1 VALUES(4, 'even', 'four',  4);
29b6e9f7a4Sdan  INSERT INTO t1 VALUES(5, 'odd',  'five',  5);
30b6e9f7a4Sdan  INSERT INTO t1 VALUES(6, 'even', 'six',   6);
31b6e9f7a4Sdan} {}
32b6e9f7a4Sdan
33b6e9f7a4Sdando_execsql_test 1.1 {
34b6e9f7a4Sdan  SELECT c, sum(d) OVER (PARTITION BY b ORDER BY c) FROM t1;
35b6e9f7a4Sdan} {four 4   six 10   two 12   five 5   one 6   three 9}
36b6e9f7a4Sdan
37b6e9f7a4Sdando_execsql_test 1.2 {
38b6e9f7a4Sdan  SELECT sum(d) OVER () FROM t1;
39b6e9f7a4Sdan} {21   21   21   21   21   21}
40b6e9f7a4Sdan
41b6e9f7a4Sdando_execsql_test 1.3 {
42b6e9f7a4Sdan  SELECT sum(d) OVER (PARTITION BY b) FROM t1;
43b6e9f7a4Sdan} {12   12   12   9   9   9}
44f9eae18bSdan
45*c3a20c19Sdan#==========================================================================
46*c3a20c19Sdan
47*c3a20c19Sdando_execsql_test 2.1 {
48*c3a20c19Sdan  SELECT a, sum(d) OVER (
49*c3a20c19Sdan    ORDER BY d
50*c3a20c19Sdan    ROWS BETWEEN 1000 PRECEDING AND 1 FOLLOWING
51*c3a20c19Sdan  ) FROM t1
52*c3a20c19Sdan} {1 3   2 6   3 10   4 15   5 21   6 21}
53*c3a20c19Sdan
54*c3a20c19Sdando_execsql_test 2.2 {
55*c3a20c19Sdan  SELECT a, sum(d) OVER (
56*c3a20c19Sdan    ORDER BY d
57*c3a20c19Sdan    ROWS BETWEEN 1000 PRECEDING AND 1000 FOLLOWING
58*c3a20c19Sdan  ) FROM t1
59*c3a20c19Sdan} {1 21   2 21   3 21   4 21   5 21   6 21}
60*c3a20c19Sdan
61*c3a20c19Sdando_execsql_test 2.3 {
62*c3a20c19Sdan  SELECT a, sum(d) OVER (
63*c3a20c19Sdan    ORDER BY d
64*c3a20c19Sdan    ROWS BETWEEN 1 PRECEDING AND 1000 FOLLOWING
65*c3a20c19Sdan  ) FROM t1
66*c3a20c19Sdan} {1 21   2 21   3 20   4 18   5 15   6 11}
67*c3a20c19Sdan
68*c3a20c19Sdando_execsql_test 2.4 {
69*c3a20c19Sdan  SELECT a, sum(d) OVER (
70*c3a20c19Sdan    ORDER BY d
71*c3a20c19Sdan    ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
72*c3a20c19Sdan  ) FROM t1
73*c3a20c19Sdan} {1 3   2 6   3 9   4 12   5 15   6 11}
74*c3a20c19Sdan
75*c3a20c19Sdando_execsql_test 2.5 {
76*c3a20c19Sdan  SELECT a, sum(d) OVER (
77*c3a20c19Sdan    ORDER BY d
78*c3a20c19Sdan    ROWS BETWEEN 1 PRECEDING AND 0 FOLLOWING
79*c3a20c19Sdan  ) FROM t1
80*c3a20c19Sdan} {1 1   2 3   3 5   4 7   5 9   6 11}
81*c3a20c19Sdan
82*c3a20c19Sdando_execsql_test 2.6 {
83*c3a20c19Sdan  SELECT a, sum(d) OVER (
84*c3a20c19Sdan    PARTITION BY b
85*c3a20c19Sdan    ORDER BY d
86*c3a20c19Sdan    ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
87*c3a20c19Sdan  ) FROM t1
88*c3a20c19Sdan} {2 6   4 12   6 10   1 4   3 9   5 8}
89*c3a20c19Sdan
90*c3a20c19Sdando_execsql_test 2.7 {
91*c3a20c19Sdan  SELECT a, sum(d) OVER (
92*c3a20c19Sdan    PARTITION BY b
93*c3a20c19Sdan    ORDER BY d
94*c3a20c19Sdan    ROWS BETWEEN 0 PRECEDING AND 0 FOLLOWING
95*c3a20c19Sdan  ) FROM t1
96*c3a20c19Sdan} {2 2   4 4   6 6   1 1   3 3   5 5}
97*c3a20c19Sdan
98f9eae18bSdanfinish_test
99f9eae18bSdan#==========================================================================
100f9eae18bSdan
101f9eae18bSdando_execsql_test 2.1 {
102f9eae18bSdan  SELECT a, sum(d) OVER (
103f9eae18bSdan    PARTITION BY b ORDER BY d
104f9eae18bSdan    RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
105f9eae18bSdan  ) FROM t1
106f9eae18bSdan} {2 12   4 10   6 6   1 9   3 8   5 5}
107f9eae18bSdan
108f9eae18bSdando_execsql_test 2.2 {
109f9eae18bSdan  SELECT a, sum(d) OVER (
110f9eae18bSdan    ORDER BY b
111f9eae18bSdan    RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
112f9eae18bSdan  ) FROM t1
113f9eae18bSdan} {2 21   4 21   6 21   1 9   3 9   5 9}
114f9eae18bSdan
115f9eae18bSdando_execsql_test 2.3 {
116f9eae18bSdan  SELECT a, sum(d) OVER (
117f9eae18bSdan    ORDER BY d
118f9eae18bSdan    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
119f9eae18bSdan  ) FROM t1
120f9eae18bSdan} {1 21   2 21   3 21   4 21   5 21   6 21}
121b6e9f7a4Sdan
1228471be33Sdando_execsql_test 2.4 {
1238471be33Sdan  SELECT a, sum(d) OVER (
1248471be33Sdan    ORDER BY d
1258471be33Sdan    ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
1268471be33Sdan  ) FROM t1
1278471be33Sdan} {1 3   2 6   3 9   4 12   5 15   6 11}
1288471be33Sdan
1298471be33Sdando_execsql_test 2.5 {
1308471be33Sdan  SELECT a, sum(d) OVER (
1318471be33Sdan    ORDER BY d
1328471be33Sdan    ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING
1338471be33Sdan  ) FROM t1
1348471be33Sdan} {1 {}   2 1   3 2   4 3   5 4   6 5}
1358471be33Sdan
136b6e9f7a4Sdanfinish_test
137