From ff9fcd501c4035312b0123dcc0c82ad3c44715f9 Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Mon, 14 Oct 2019 15:15:32 -0700 Subject: [PATCH] Revert "[SPARK-29107][SQL][TESTS] Port window.sql (Part 1)" This reverts commit 81915dacc43f3eceb2434b2115d685c415adbc9b. --- .../sql-tests/inputs/pgSQL/window_part1.sql | 348 ------- .../results/pgSQL/window_part1.sql.out | 902 ------------------ 2 files changed, 1250 deletions(-) delete mode 100644 sql/core/src/test/resources/sql-tests/inputs/pgSQL/window_part1.sql delete mode 100644 sql/core/src/test/resources/sql-tests/results/pgSQL/window_part1.sql.out diff --git a/sql/core/src/test/resources/sql-tests/inputs/pgSQL/window_part1.sql b/sql/core/src/test/resources/sql-tests/inputs/pgSQL/window_part1.sql deleted file mode 100644 index 2c868d7c38..0000000000 --- a/sql/core/src/test/resources/sql-tests/inputs/pgSQL/window_part1.sql +++ /dev/null @@ -1,348 +0,0 @@ --- Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group --- --- Window Functions Testing --- https://github.com/postgres/postgres/blob/REL_12_STABLE/src/test/regress/sql/window.sql#L1-L319 - -CREATE TEMPORARY VIEW tenk2 AS SELECT * FROM tenk1; - -CREATE TABLE empsalary ( - depname string, - empno integer, - salary int, - enroll_date date -) USING parquet; - -INSERT INTO empsalary VALUES -('develop', 10, 5200, '2007-08-01'), -('sales', 1, 5000, '2006-10-01'), -('personnel', 5, 3500, '2007-12-10'), -('sales', 4, 4800, '2007-08-08'), -('personnel', 2, 3900, '2006-12-23'), -('develop', 7, 4200, '2008-01-01'), -('develop', 9, 4500, '2008-01-01'), -('sales', 3, 4800, '2007-08-01'), -('develop', 8, 6000, '2006-10-01'), -('develop', 11, 5200, '2007-08-15'); - -SELECT depname, empno, salary, sum(salary) OVER (PARTITION BY depname) FROM empsalary ORDER BY depname, salary; - -SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary) FROM empsalary; - --- with GROUP BY -SELECT four, ten, SUM(SUM(four)) OVER (PARTITION BY four), AVG(ten) FROM tenk1 -GROUP BY four, ten ORDER BY four, ten; - -SELECT depname, empno, salary, sum(salary) OVER w FROM empsalary WINDOW w AS (PARTITION BY depname); - --- [SPARK-28064] Order by does not accept a call to rank() --- SELECT depname, empno, salary, rank() OVER w FROM empsalary WINDOW w AS (PARTITION BY depname ORDER BY salary) ORDER BY rank() OVER w; - --- empty window specification -SELECT COUNT(*) OVER () FROM tenk1 WHERE unique2 < 10; - -SELECT COUNT(*) OVER w FROM tenk1 WHERE unique2 < 10 WINDOW w AS (); - --- no window operation -SELECT four FROM tenk1 WHERE FALSE WINDOW w AS (PARTITION BY ten); - --- cumulative aggregate -SELECT sum(four) OVER (PARTITION BY ten ORDER BY unique2) AS sum_1, ten, four FROM tenk1 WHERE unique2 < 10; - -SELECT row_number() OVER (ORDER BY unique2) FROM tenk1 WHERE unique2 < 10; - -SELECT rank() OVER (PARTITION BY four ORDER BY ten) AS rank_1, ten, four FROM tenk1 WHERE unique2 < 10; - -SELECT dense_rank() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - -SELECT percent_rank() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - -SELECT cume_dist() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - -SELECT ntile(3) OVER (ORDER BY ten, four), ten, four FROM tenk1 WHERE unique2 < 10; - --- [SPARK-28065] ntile does not accept NULL as input --- SELECT ntile(NULL) OVER (ORDER BY ten, four), ten, four FROM tenk1 LIMIT 2; - -SELECT lag(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - --- [SPARK-28068] `lag` second argument must be a literal in Spark --- SELECT lag(ten, four) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - --- [SPARK-28068] `lag` second argument must be a literal in Spark --- SELECT lag(ten, four, 0) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - -SELECT lead(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - -SELECT lead(ten * 2, 1) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - -SELECT lead(ten * 2, 1, -1) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - -SELECT first(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - --- last returns the last row of the frame, which is CURRENT ROW in ORDER BY window. -SELECT last(four) OVER (ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10; - -SELECT last(ten) OVER (PARTITION BY four), ten, four FROM -(SELECT * FROM tenk1 WHERE unique2 < 10 ORDER BY four, ten)s -ORDER BY four, ten; - --- [SPARK-27951] ANSI SQL: NTH_VALUE function --- SELECT nth_value(ten, four + 1) OVER (PARTITION BY four), ten, four --- FROM (SELECT * FROM tenk1 WHERE unique2 < 10 ORDER BY four, ten)s; - -SELECT ten, two, sum(hundred) AS gsum, sum(sum(hundred)) OVER (PARTITION BY two ORDER BY ten) AS wsum -FROM tenk1 GROUP BY ten, two; - -SELECT count(*) OVER (PARTITION BY four), four FROM (SELECT * FROM tenk1 WHERE two = 1)s WHERE unique2 < 10; - -SELECT (count(*) OVER (PARTITION BY four ORDER BY ten) + - sum(hundred) OVER (PARTITION BY four ORDER BY ten)) AS cntsum - FROM tenk1 WHERE unique2 < 10; - --- opexpr with different windows evaluation. -SELECT * FROM( - SELECT count(*) OVER (PARTITION BY four ORDER BY ten) + - sum(hundred) OVER (PARTITION BY two ORDER BY ten) AS total, - count(*) OVER (PARTITION BY four ORDER BY ten) AS fourcount, - sum(hundred) OVER (PARTITION BY two ORDER BY ten) AS twosum - FROM tenk1 -)sub WHERE total <> fourcount + twosum; - -SELECT avg(four) OVER (PARTITION BY four ORDER BY thousand / 100) FROM tenk1 WHERE unique2 < 10; - -SELECT ten, two, sum(hundred) AS gsum, sum(sum(hundred)) OVER win AS wsum -FROM tenk1 GROUP BY ten, two WINDOW win AS (PARTITION BY two ORDER BY ten); - --- more than one window with GROUP BY -SELECT sum(salary), - row_number() OVER (ORDER BY depname), - sum(sum(salary)) OVER (ORDER BY depname DESC) -FROM empsalary GROUP BY depname; - --- identical windows with different names -SELECT sum(salary) OVER w1, count(*) OVER w2 -FROM empsalary WINDOW w1 AS (ORDER BY salary), w2 AS (ORDER BY salary); - --- subplan --- [SPARK-28379] Correlated scalar subqueries must be aggregated --- SELECT lead(ten, (SELECT two FROM tenk1 WHERE s.unique2 = unique2)) OVER (PARTITION BY four ORDER BY ten) --- FROM tenk1 s WHERE unique2 < 10; - --- empty table -SELECT count(*) OVER (PARTITION BY four) FROM (SELECT * FROM tenk1 WHERE FALSE)s; - --- mixture of agg/wfunc in the same window -SELECT sum(salary) OVER w, rank() OVER w FROM empsalary WINDOW w AS (PARTITION BY depname ORDER BY salary DESC); - --- strict aggs --- Temporarily turns off the ANSI mode because of compatibility issues between --- keywords related to date (in this case, year) -SET spark.sql.parser.ansi.enabled=false; -SELECT empno, depname, salary, bonus, depadj, MIN(bonus) OVER (ORDER BY empno), MAX(depadj) OVER () FROM( -SELECT *, - CASE WHEN enroll_date < '2008-01-01' THEN 2008 - extract(year FROM enroll_date) END * 500 AS bonus, - CASE WHEN - AVG(salary) OVER (PARTITION BY depname) < salary - THEN 200 END AS depadj FROM empsalary - )s; -SET spark.sql.parser.ansi.enabled=true; - -create temporary view int4_tbl as select * from values - (0), - (123456), - (-123456), - (2147483647), - (-2147483647) - as int4_tbl(f1); - --- window function over ungrouped agg over empty row set (bug before 9.1) -SELECT SUM(COUNT(f1)) OVER () FROM int4_tbl WHERE f1=42; - --- window function with ORDER BY an expression involving aggregates (9.1 bug) -select ten, - sum(unique1) + sum(unique2) as res, - rank() over (order by sum(unique1) + sum(unique2)) as rank -from tenk1 -group by ten order by ten; - --- window and aggregate with GROUP BY expression (9.2 bug) --- explain --- select first(max(x)) over (), y --- from (select unique1 as x, ten+four as y from tenk1) ss --- group by y; - --- test non-default frame specifications -SELECT four, ten, -sum(ten) over (partition by four order by ten), -last(ten) over (partition by four order by ten) -FROM (select distinct ten, four from tenk1) ss; - -SELECT four, ten, -sum(ten) over (partition by four order by ten range between unbounded preceding and current row), -last(ten) over (partition by four order by ten range between unbounded preceding and current row) -FROM (select distinct ten, four from tenk1) ss; - -SELECT four, ten, -sum(ten) over (partition by four order by ten range between unbounded preceding and unbounded following), -last(ten) over (partition by four order by ten range between unbounded preceding and unbounded following) -FROM (select distinct ten, four from tenk1) ss; - --- [SPARK-29451] Some queries with divisions in SQL windows are failling in Thrift --- SELECT four, ten/4 as two, --- sum(ten/4) over (partition by four order by ten/4 range between unbounded preceding and current row), --- last(ten/4) over (partition by four order by ten/4 range between unbounded preceding and current row) --- FROM (select distinct ten, four from tenk1) ss; - --- [SPARK-29451] Some queries with divisions in SQL windows are failling in Thrift --- SELECT four, ten/4 as two, --- sum(ten/4) over (partition by four order by ten/4 rows between unbounded preceding and current row), --- last(ten/4) over (partition by four order by ten/4 rows between unbounded preceding and current row) --- FROM (select distinct ten, four from tenk1) ss; - -SELECT sum(unique1) over (order by four range between current row and unbounded following), -unique1, four -FROM tenk1 WHERE unique1 < 10; - -SELECT sum(unique1) over (rows between current row and unbounded following), -unique1, four -FROM tenk1 WHERE unique1 < 10; - -SELECT sum(unique1) over (rows between 2 preceding and 2 following), -unique1, four -FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT sum(unique1) over (rows between 2 preceding and 2 following exclude no others), --- unique1, four --- FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT sum(unique1) over (rows between 2 preceding and 2 following exclude current row), --- unique1, four --- FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT sum(unique1) over (rows between 2 preceding and 2 following exclude group), --- unique1, four --- FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT sum(unique1) over (rows between 2 preceding and 2 following exclude ties), --- unique1, four --- FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT first(unique1) over (ORDER BY four rows between current row and 2 following exclude current row), --- unique1, four --- FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT first(unique1) over (ORDER BY four rows between current row and 2 following exclude group), --- unique1, four --- FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT first(unique1) over (ORDER BY four rows between current row and 2 following exclude ties), --- unique1, four --- FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT last(unique1) over (ORDER BY four rows between current row and 2 following exclude current row), --- unique1, four --- FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT last(unique1) over (ORDER BY four rows between current row and 2 following exclude group), --- unique1, four --- FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT last(unique1) over (ORDER BY four rows between current row and 2 following exclude ties), --- unique1, four --- FROM tenk1 WHERE unique1 < 10; - -SELECT sum(unique1) over (rows between 2 preceding and 1 preceding), -unique1, four -FROM tenk1 WHERE unique1 < 10; - -SELECT sum(unique1) over (rows between 1 following and 3 following), -unique1, four -FROM tenk1 WHERE unique1 < 10; - -SELECT sum(unique1) over (rows between unbounded preceding and 1 following), -unique1, four -FROM tenk1 WHERE unique1 < 10; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT sum(unique1) over (w range between current row and unbounded following), --- unique1, four --- FROM tenk1 WHERE unique1 < 10 WINDOW w AS (order by four); - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT sum(unique1) over (w range between unbounded preceding and current row exclude current row), --- unique1, four --- FROM tenk1 WHERE unique1 < 10 WINDOW w AS (order by four); - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT sum(unique1) over (w range between unbounded preceding and current row exclude group), --- unique1, four --- FROM tenk1 WHERE unique1 < 10 WINDOW w AS (order by four); - --- [SPARK-28428] Spark `exclude` always expecting `()` --- SELECT sum(unique1) over (w range between unbounded preceding and current row exclude ties), --- unique1, four --- FROM tenk1 WHERE unique1 < 10 WINDOW w AS (order by four); - --- [SPARK-27951] ANSI SQL: NTH_VALUE function --- SELECT first_value(unique1) over w, --- nth_value(unique1, 2) over w AS nth_2, --- last_value(unique1) over w, unique1, four --- FROM tenk1 WHERE unique1 < 10 --- WINDOW w AS (order by four range between current row and unbounded following); - --- [SPARK-28501] Frame bound value must be a literal. --- SELECT sum(unique1) over --- (order by unique1 --- rows (SELECT unique1 FROM tenk1 ORDER BY unique1 LIMIT 1) + 1 PRECEDING), --- unique1 --- FROM tenk1 WHERE unique1 < 10; - -CREATE TEMP VIEW v_window AS -SELECT i.id, sum(i.id) over (order by i.id rows between 1 preceding and 1 following) as sum_rows -FROM range(1, 11) i; - -SELECT * FROM v_window; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- CREATE OR REPLACE TEMP VIEW v_window AS --- SELECT i, sum(i) over (order by i rows between 1 preceding and 1 following --- exclude current row) as sum_rows FROM range(1, 10) i; - --- SELECT * FROM v_window; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- CREATE OR REPLACE TEMP VIEW v_window AS --- SELECT i, sum(i) over (order by i rows between 1 preceding and 1 following --- exclude group) as sum_rows FROM range(1, 10) i; --- SELECT * FROM v_window; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- CREATE OR REPLACE TEMP VIEW v_window AS --- SELECT i, sum(i) over (order by i rows between 1 preceding and 1 following --- exclude ties) as sum_rows FROM generate_series(1, 10) i; - --- [SPARK-28428] Spark `exclude` always expecting `()` --- CREATE OR REPLACE TEMP VIEW v_window AS --- SELECT i, sum(i) over (order by i rows between 1 preceding and 1 following --- exclude no others) as sum_rows FROM generate_series(1, 10) i; --- SELECT * FROM v_window; - --- [SPARK-28648] Adds support to `groups` unit type in window clauses --- CREATE OR REPLACE TEMP VIEW v_window AS --- SELECT i.id, sum(i.id) over (order by i.id groups between 1 preceding and 1 following) as sum_rows FROM range(1, 11) i; --- SELECT * FROM v_window; - -DROP VIEW v_window; -DROP TABLE empsalary; -DROP VIEW tenk2; -DROP VIEW int4_tbl; diff --git a/sql/core/src/test/resources/sql-tests/results/pgSQL/window_part1.sql.out b/sql/core/src/test/resources/sql-tests/results/pgSQL/window_part1.sql.out deleted file mode 100644 index e75df1e031..0000000000 --- a/sql/core/src/test/resources/sql-tests/results/pgSQL/window_part1.sql.out +++ /dev/null @@ -1,902 +0,0 @@ --- Automatically generated by SQLQueryTestSuite --- Number of queries: 55 - - --- !query 0 -CREATE TEMPORARY VIEW tenk2 AS SELECT * FROM tenk1 --- !query 0 schema -struct<> --- !query 0 output - - - --- !query 1 -CREATE TABLE empsalary ( - depname string, - empno integer, - salary int, - enroll_date date -) USING parquet --- !query 1 schema -struct<> --- !query 1 output - - - --- !query 2 -INSERT INTO empsalary VALUES -('develop', 10, 5200, '2007-08-01'), -('sales', 1, 5000, '2006-10-01'), -('personnel', 5, 3500, '2007-12-10'), -('sales', 4, 4800, '2007-08-08'), -('personnel', 2, 3900, '2006-12-23'), -('develop', 7, 4200, '2008-01-01'), -('develop', 9, 4500, '2008-01-01'), -('sales', 3, 4800, '2007-08-01'), -('develop', 8, 6000, '2006-10-01'), -('develop', 11, 5200, '2007-08-15') --- !query 2 schema -struct<> --- !query 2 output - - - --- !query 3 -SELECT depname, empno, salary, sum(salary) OVER (PARTITION BY depname) FROM empsalary ORDER BY depname, salary --- !query 3 schema -struct --- !query 3 output -develop 7 4200 25100 -develop 9 4500 25100 -develop 10 5200 25100 -develop 11 5200 25100 -develop 8 6000 25100 -personnel 5 3500 7400 -personnel 2 3900 7400 -sales 4 4800 14600 -sales 3 4800 14600 -sales 1 5000 14600 - - --- !query 4 -SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary) FROM empsalary --- !query 4 schema -struct --- !query 4 output -develop 10 5200 3 -develop 11 5200 3 -develop 7 4200 1 -develop 8 6000 5 -develop 9 4500 2 -personnel 2 3900 2 -personnel 5 3500 1 -sales 1 5000 3 -sales 3 4800 1 -sales 4 4800 1 - - --- !query 5 -SELECT four, ten, SUM(SUM(four)) OVER (PARTITION BY four), AVG(ten) FROM tenk1 -GROUP BY four, ten ORDER BY four, ten --- !query 5 schema -struct --- !query 5 output -0 0 0 0.0 -0 2 0 2.0 -0 4 0 4.0 -0 6 0 6.0 -0 8 0 8.0 -1 1 2500 1.0 -1 3 2500 3.0 -1 5 2500 5.0 -1 7 2500 7.0 -1 9 2500 9.0 -2 0 5000 0.0 -2 2 5000 2.0 -2 4 5000 4.0 -2 6 5000 6.0 -2 8 5000 8.0 -3 1 7500 1.0 -3 3 7500 3.0 -3 5 7500 5.0 -3 7 7500 7.0 -3 9 7500 9.0 - - --- !query 6 -SELECT depname, empno, salary, sum(salary) OVER w FROM empsalary WINDOW w AS (PARTITION BY depname) --- !query 6 schema -struct --- !query 6 output -develop 10 5200 25100 -develop 11 5200 25100 -develop 7 4200 25100 -develop 8 6000 25100 -develop 9 4500 25100 -personnel 2 3900 7400 -personnel 5 3500 7400 -sales 1 5000 14600 -sales 3 4800 14600 -sales 4 4800 14600 - - --- !query 7 -SELECT COUNT(*) OVER () FROM tenk1 WHERE unique2 < 10 --- !query 7 schema -struct --- !query 7 output -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 - - --- !query 8 -SELECT COUNT(*) OVER w FROM tenk1 WHERE unique2 < 10 WINDOW w AS () --- !query 8 schema -struct --- !query 8 output -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 - - --- !query 9 -SELECT four FROM tenk1 WHERE FALSE WINDOW w AS (PARTITION BY ten) --- !query 9 schema -struct --- !query 9 output - - - --- !query 10 -SELECT sum(four) OVER (PARTITION BY ten ORDER BY unique2) AS sum_1, ten, four FROM tenk1 WHERE unique2 < 10 --- !query 10 schema -struct --- !query 10 output -0 0 0 -0 0 0 -0 4 0 -1 7 1 -1 9 1 -2 0 2 -3 1 3 -3 3 3 -4 1 1 -5 1 1 - - --- !query 11 -SELECT row_number() OVER (ORDER BY unique2) FROM tenk1 WHERE unique2 < 10 --- !query 11 schema -struct --- !query 11 output -1 -10 -2 -3 -4 -5 -6 -7 -8 -9 - - --- !query 12 -SELECT rank() OVER (PARTITION BY four ORDER BY ten) AS rank_1, ten, four FROM tenk1 WHERE unique2 < 10 --- !query 12 schema -struct --- !query 12 output -1 0 0 -1 0 0 -1 0 2 -1 1 1 -1 1 1 -1 1 3 -2 3 3 -3 4 0 -3 7 1 -4 9 1 - - --- !query 13 -SELECT dense_rank() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10 --- !query 13 schema -struct --- !query 13 output -1 0 0 -1 0 0 -1 0 2 -1 1 1 -1 1 1 -1 1 3 -2 3 3 -2 4 0 -2 7 1 -3 9 1 - - --- !query 14 -SELECT percent_rank() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10 --- !query 14 schema -struct --- !query 14 output -0.0 0 0 -0.0 0 0 -0.0 0 2 -0.0 1 1 -0.0 1 1 -0.0 1 3 -0.6666666666666666 7 1 -1.0 3 3 -1.0 4 0 -1.0 9 1 - - --- !query 15 -SELECT cume_dist() OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10 --- !query 15 schema -struct --- !query 15 output -0.5 1 1 -0.5 1 1 -0.5 1 3 -0.6666666666666666 0 0 -0.6666666666666666 0 0 -0.75 7 1 -1.0 0 2 -1.0 3 3 -1.0 4 0 -1.0 9 1 - - --- !query 16 -SELECT ntile(3) OVER (ORDER BY ten, four), ten, four FROM tenk1 WHERE unique2 < 10 --- !query 16 schema -struct --- !query 16 output -1 0 0 -1 0 0 -1 0 2 -1 1 1 -2 1 1 -2 1 3 -2 3 3 -3 4 0 -3 7 1 -3 9 1 - - --- !query 17 -SELECT lag(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10 --- !query 17 schema -struct --- !query 17 output -0 0 0 -0 4 0 -1 1 1 -1 3 3 -1 7 1 -7 9 1 -NULL 0 0 -NULL 0 2 -NULL 1 1 -NULL 1 3 - - --- !query 18 -SELECT lead(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10 --- !query 18 schema -struct --- !query 18 output -0 0 0 -1 1 1 -3 1 3 -4 0 0 -7 1 1 -9 7 1 -NULL 0 2 -NULL 3 3 -NULL 4 0 -NULL 9 1 - - --- !query 19 -SELECT lead(ten * 2, 1) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10 --- !query 19 schema -struct --- !query 19 output -0 0 0 -14 1 1 -18 7 1 -2 1 1 -6 1 3 -8 0 0 -NULL 0 2 -NULL 3 3 -NULL 4 0 -NULL 9 1 - - --- !query 20 -SELECT lead(ten * 2, 1, -1) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10 --- !query 20 schema -struct --- !query 20 output --1 0 2 --1 3 3 --1 4 0 --1 9 1 -0 0 0 -14 1 1 -18 7 1 -2 1 1 -6 1 3 -8 0 0 - - --- !query 21 -SELECT first(ten) OVER (PARTITION BY four ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10 --- !query 21 schema -struct --- !query 21 output -0 0 0 -0 0 0 -0 0 2 -0 4 0 -1 1 1 -1 1 1 -1 1 3 -1 3 3 -1 7 1 -1 9 1 - - --- !query 22 -SELECT last(four) OVER (ORDER BY ten), ten, four FROM tenk1 WHERE unique2 < 10 --- !query 22 schema -struct --- !query 22 output -0 4 0 -1 1 1 -1 1 1 -1 1 3 -1 7 1 -1 9 1 -2 0 0 -2 0 0 -2 0 2 -3 3 3 - - --- !query 23 -SELECT last(ten) OVER (PARTITION BY four), ten, four FROM -(SELECT * FROM tenk1 WHERE unique2 < 10 ORDER BY four, ten)s -ORDER BY four, ten --- !query 23 schema -struct --- !query 23 output -4 0 0 -4 0 0 -4 4 0 -9 1 1 -9 1 1 -9 7 1 -9 9 1 -0 0 2 -3 1 3 -3 3 3 - - --- !query 24 -SELECT ten, two, sum(hundred) AS gsum, sum(sum(hundred)) OVER (PARTITION BY two ORDER BY ten) AS wsum -FROM tenk1 GROUP BY ten, two --- !query 24 schema -struct --- !query 24 output -0 0 45000 45000 -1 1 46000 46000 -2 0 47000 92000 -3 1 48000 94000 -4 0 49000 141000 -5 1 50000 144000 -6 0 51000 192000 -7 1 52000 196000 -8 0 53000 245000 -9 1 54000 250000 - - --- !query 25 -SELECT count(*) OVER (PARTITION BY four), four FROM (SELECT * FROM tenk1 WHERE two = 1)s WHERE unique2 < 10 --- !query 25 schema -struct --- !query 25 output -2 3 -2 3 -4 1 -4 1 -4 1 -4 1 - - --- !query 26 -SELECT (count(*) OVER (PARTITION BY four ORDER BY ten) + - sum(hundred) OVER (PARTITION BY four ORDER BY ten)) AS cntsum - FROM tenk1 WHERE unique2 < 10 --- !query 26 schema -struct --- !query 26 output -136 -22 -22 -24 -24 -51 -82 -87 -92 -92 - - --- !query 27 -SELECT * FROM( - SELECT count(*) OVER (PARTITION BY four ORDER BY ten) + - sum(hundred) OVER (PARTITION BY two ORDER BY ten) AS total, - count(*) OVER (PARTITION BY four ORDER BY ten) AS fourcount, - sum(hundred) OVER (PARTITION BY two ORDER BY ten) AS twosum - FROM tenk1 -)sub WHERE total <> fourcount + twosum --- !query 27 schema -struct --- !query 27 output - - - --- !query 28 -SELECT avg(four) OVER (PARTITION BY four ORDER BY thousand / 100) FROM tenk1 WHERE unique2 < 10 --- !query 28 schema -struct --- !query 28 output -0.0 -0.0 -0.0 -1.0 -1.0 -1.0 -1.0 -2.0 -3.0 -3.0 - - --- !query 29 -SELECT ten, two, sum(hundred) AS gsum, sum(sum(hundred)) OVER win AS wsum -FROM tenk1 GROUP BY ten, two WINDOW win AS (PARTITION BY two ORDER BY ten) --- !query 29 schema -struct --- !query 29 output -0 0 45000 45000 -1 1 46000 46000 -2 0 47000 92000 -3 1 48000 94000 -4 0 49000 141000 -5 1 50000 144000 -6 0 51000 192000 -7 1 52000 196000 -8 0 53000 245000 -9 1 54000 250000 - - --- !query 30 -SELECT sum(salary), - row_number() OVER (ORDER BY depname), - sum(sum(salary)) OVER (ORDER BY depname DESC) -FROM empsalary GROUP BY depname --- !query 30 schema -struct --- !query 30 output -14600 3 14600 -25100 1 47100 -7400 2 22000 - - --- !query 31 -SELECT sum(salary) OVER w1, count(*) OVER w2 -FROM empsalary WINDOW w1 AS (ORDER BY salary), w2 AS (ORDER BY salary) --- !query 31 schema -struct --- !query 31 output -11600 3 -16100 4 -25700 6 -25700 6 -30700 7 -3500 1 -41100 9 -41100 9 -47100 10 -7400 2 - - --- !query 32 -SELECT count(*) OVER (PARTITION BY four) FROM (SELECT * FROM tenk1 WHERE FALSE)s --- !query 32 schema -struct --- !query 32 output - - - --- !query 33 -SELECT sum(salary) OVER w, rank() OVER w FROM empsalary WINDOW w AS (PARTITION BY depname ORDER BY salary DESC) --- !query 33 schema -struct --- !query 33 output -14600 2 -14600 2 -16400 2 -16400 2 -20900 4 -25100 5 -3900 1 -5000 1 -6000 1 -7400 2 - - --- !query 34 -SET spark.sql.parser.ansi.enabled=false --- !query 34 schema -struct --- !query 34 output -spark.sql.parser.ansi.enabled false - - --- !query 35 -SELECT empno, depname, salary, bonus, depadj, MIN(bonus) OVER (ORDER BY empno), MAX(depadj) OVER () FROM( -SELECT *, - CASE WHEN enroll_date < '2008-01-01' THEN 2008 - extract(year FROM enroll_date) END * 500 AS bonus, - CASE WHEN - AVG(salary) OVER (PARTITION BY depname) < salary - THEN 200 END AS depadj FROM empsalary - )s --- !query 35 schema -struct --- !query 35 output -1 sales 5000 1000 200 1000 200 -10 develop 5200 500 200 500 200 -11 develop 5200 500 200 500 200 -2 personnel 3900 1000 200 1000 200 -3 sales 4800 500 NULL 500 200 -4 sales 4800 500 NULL 500 200 -5 personnel 3500 500 NULL 500 200 -7 develop 4200 NULL NULL 500 200 -8 develop 6000 1000 200 500 200 -9 develop 4500 NULL NULL 500 200 - - --- !query 36 -SET spark.sql.parser.ansi.enabled=true --- !query 36 schema -struct --- !query 36 output -spark.sql.parser.ansi.enabled true - - --- !query 37 -create temporary view int4_tbl as select * from values - (0), - (123456), - (-123456), - (2147483647), - (-2147483647) - as int4_tbl(f1) --- !query 37 schema -struct<> --- !query 37 output - - - --- !query 38 -SELECT SUM(COUNT(f1)) OVER () FROM int4_tbl WHERE f1=42 --- !query 38 schema -struct --- !query 38 output -0 - - --- !query 39 -select ten, - sum(unique1) + sum(unique2) as res, - rank() over (order by sum(unique1) + sum(unique2)) as rank -from tenk1 -group by ten order by ten --- !query 39 schema -struct --- !query 39 output -0 9976146 4 -1 10114187 9 -2 10059554 8 -3 9878541 1 -4 9881005 2 -5 9981670 5 -6 9947099 3 -7 10120309 10 -8 9991305 6 -9 10040184 7 - - --- !query 40 -SELECT four, ten, -sum(ten) over (partition by four order by ten), -last(ten) over (partition by four order by ten) -FROM (select distinct ten, four from tenk1) ss --- !query 40 schema -struct --- !query 40 output -0 0 0 0 -0 2 2 2 -0 4 6 4 -0 6 12 6 -0 8 20 8 -1 1 1 1 -1 3 4 3 -1 5 9 5 -1 7 16 7 -1 9 25 9 -2 0 0 0 -2 2 2 2 -2 4 6 4 -2 6 12 6 -2 8 20 8 -3 1 1 1 -3 3 4 3 -3 5 9 5 -3 7 16 7 -3 9 25 9 - - --- !query 41 -SELECT four, ten, -sum(ten) over (partition by four order by ten range between unbounded preceding and current row), -last(ten) over (partition by four order by ten range between unbounded preceding and current row) -FROM (select distinct ten, four from tenk1) ss --- !query 41 schema -struct --- !query 41 output -0 0 0 0 -0 2 2 2 -0 4 6 4 -0 6 12 6 -0 8 20 8 -1 1 1 1 -1 3 4 3 -1 5 9 5 -1 7 16 7 -1 9 25 9 -2 0 0 0 -2 2 2 2 -2 4 6 4 -2 6 12 6 -2 8 20 8 -3 1 1 1 -3 3 4 3 -3 5 9 5 -3 7 16 7 -3 9 25 9 - - --- !query 42 -SELECT four, ten, -sum(ten) over (partition by four order by ten range between unbounded preceding and unbounded following), -last(ten) over (partition by four order by ten range between unbounded preceding and unbounded following) -FROM (select distinct ten, four from tenk1) ss --- !query 42 schema -struct --- !query 42 output -0 0 20 8 -0 2 20 8 -0 4 20 8 -0 6 20 8 -0 8 20 8 -1 1 25 9 -1 3 25 9 -1 5 25 9 -1 7 25 9 -1 9 25 9 -2 0 20 8 -2 2 20 8 -2 4 20 8 -2 6 20 8 -2 8 20 8 -3 1 25 9 -3 3 25 9 -3 5 25 9 -3 7 25 9 -3 9 25 9 - - --- !query 43 -SELECT sum(unique1) over (order by four range between current row and unbounded following), -unique1, four -FROM tenk1 WHERE unique1 < 10 --- !query 43 schema -struct --- !query 43 output -10 3 3 -10 7 3 -18 2 2 -18 6 2 -33 1 1 -33 5 1 -33 9 1 -45 0 0 -45 4 0 -45 8 0 - - --- !query 44 -SELECT sum(unique1) over (rows between current row and unbounded following), -unique1, four -FROM tenk1 WHERE unique1 < 10 --- !query 44 schema -struct --- !query 44 output -0 0 0 -10 3 3 -15 5 1 -23 8 0 -32 9 1 -38 6 2 -39 1 1 -41 2 2 -45 4 0 -7 7 3 - - --- !query 45 -SELECT sum(unique1) over (rows between 2 preceding and 2 following), -unique1, four -FROM tenk1 WHERE unique1 < 10 --- !query 45 schema -struct --- !query 45 output -10 0 0 -13 2 2 -15 7 3 -22 1 1 -23 3 3 -26 6 2 -29 9 1 -31 8 0 -32 5 1 -7 4 0 - - --- !query 46 -SELECT sum(unique1) over (rows between 2 preceding and 1 preceding), -unique1, four -FROM tenk1 WHERE unique1 < 10 --- !query 46 schema -struct --- !query 46 output -10 0 0 -13 3 3 -15 8 0 -17 5 1 -3 6 2 -4 2 2 -6 1 1 -7 9 1 -8 7 3 -NULL 4 0 - - --- !query 47 -SELECT sum(unique1) over (rows between 1 following and 3 following), -unique1, four -FROM tenk1 WHERE unique1 < 10 --- !query 47 schema -struct --- !query 47 output -0 7 3 -10 5 1 -15 8 0 -16 2 2 -16 9 1 -22 6 2 -23 1 1 -7 3 3 -9 4 0 -NULL 0 0 - - --- !query 48 -SELECT sum(unique1) over (rows between unbounded preceding and 1 following), -unique1, four -FROM tenk1 WHERE unique1 < 10 --- !query 48 schema -struct --- !query 48 output -13 1 1 -22 6 2 -30 9 1 -35 8 0 -38 5 1 -45 0 0 -45 3 3 -45 7 3 -6 4 0 -7 2 2 - - --- !query 49 -CREATE TEMP VIEW v_window AS -SELECT i.id, sum(i.id) over (order by i.id rows between 1 preceding and 1 following) as sum_rows -FROM range(1, 11) i --- !query 49 schema -struct<> --- !query 49 output - - - --- !query 50 -SELECT * FROM v_window --- !query 50 schema -struct --- !query 50 output -1 3 -10 19 -2 6 -3 9 -4 12 -5 15 -6 18 -7 21 -8 24 -9 27 - - --- !query 51 -DROP VIEW v_window --- !query 51 schema -struct<> --- !query 51 output - - - --- !query 52 -DROP TABLE empsalary --- !query 52 schema -struct<> --- !query 52 output - - - --- !query 53 -DROP VIEW tenk2 --- !query 53 schema -struct<> --- !query 53 output - - - --- !query 54 -DROP VIEW int4_tbl --- !query 54 schema -struct<> --- !query 54 output -