# name: test/sql/window/test_evil_window.test # description: More evil cases # group: [window] statement ok PRAGMA enable_verification # negative lag query II select * from ( select lag(i, -1) over () as negative, lead(i, 1) over () as positive from generate_series(0, 10, 1) tbl(i) ) w where negative <> positive ---- statement ok CREATE TABLE empsalary (depname varchar, empno bigint, salary int, enroll_date date) statement ok 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') # aggr as input to window query TR SELECT depname, sum(sum(salary)) over (partition by depname order by salary) FROM empsalary group by depname, salary order by depname, salary ---- develop 4200.000000 develop 8700.000000 develop 19100.000000 develop 25100.000000 personnel 3500.000000 personnel 7400.000000 sales 9600.000000 sales 14600.000000 # expr in window query IR SELECT empno, sum(salary*2) OVER (PARTITION BY depname ORDER BY empno) FROM empsalary ORDER BY depname, empno ---- 7 8400.000000 8 20400.000000 9 29400.000000 10 39800.000000 11 50200.000000 2 7800.000000 5 14800.000000 1 10000.000000 3 19600.000000 4 29200.000000 # expr ontop of window query IR SELECT empno, 2*sum(salary) OVER (PARTITION BY depname ORDER BY empno) FROM empsalary ORDER BY depname, empno ---- 7 8400.000000 8 20400.000000 9 29400.000000 10 39800.000000 11 50200.000000 2 7800.000000 5 14800.000000 1 10000.000000 3 19600.000000 4 29200.000000 # tpcds-derived window query TR SELECT depname, sum(salary)*100.0000/sum(sum(salary)) OVER (PARTITION BY depname ORDER BY salary) AS revenueratio FROM empsalary GROUP BY depname, salary ORDER BY depname, revenueratio ---- develop 23.904382 develop 51.724138 develop 54.450262 develop 100.000000 personnel 52.702703 personnel 100.000000 sales 34.246575 sales 100.000000 statement ok CREATE TABLE empty_unsorted(c0 VARCHAR); statement ok SELECT * FROM empty_unsorted WHERE(NOT(false = ANY([]))) ORDER BY(~((SUM(true) OVER() - SUM(true) OVER())::INT)) ASC;