mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Allow aggregate sub-selects within ORDER BY and PARTITION BY clauses of window frame definitions.
FossilOrigin-Name: 3daab94977af5e8a95690acc555540311403d890a3261a9757c633fcaaf428a9
This commit is contained in:
@ -1919,7 +1919,55 @@ do_catchsql_test 61.1 {
|
||||
CREATE TABLE t1(a);
|
||||
INSERT INTO t1 VALUES(5),(NULL),('seventeen');
|
||||
SELECT (SELECT max(x)OVER(ORDER BY x) % min(x)OVER(ORDER BY CASE x WHEN 889 THEN x WHEN x THEN x END)) FROM (SELECT (SELECT sum(CAST(a IN(SELECT (SELECT max(x)OVER(ORDER BY CASE x WHEN 889 THEN 299 WHEN 863 THEN 863 END)) FROM (SELECT (SELECT sum(CAST((SELECT (SELECT max(x)OVER(ORDER BY x) / min(x)OVER(ORDER BY CASE x WHEN 889 THEN 299 WHEN -true THEN 863 END)) FROM (SELECT (SELECT sum(CAST(a IN(SELECT (SELECT max(x) & sum ( a )OVER(ORDER BY CASE x WHEN -8 THEN 299 WHEN 863 THEN 863 END)) FROM (SELECT (SELECT sum(CAST(a AS )) FROM t1) AS x FROM t1)) AS t1 )) FROM t1) AS x FROM t1)) AS x )) FROM t1) AS x FROM t1)) AS real)) FROM t1) AS x FROM t1);
|
||||
} {0 {{} {} {}}}
|
||||
|
||||
foreach tn {1 2} {
|
||||
if {$tn==2} { optimization_control db query-flattener 0 }
|
||||
do_catchsql_test 61.2.$tn {
|
||||
SELECT
|
||||
(SELECT max(x)OVER(ORDER BY x) / min(x) OVER() )
|
||||
FROM (
|
||||
SELECT (SELECT sum(a) FROM t1 ) AS x FROM t1
|
||||
)
|
||||
|
||||
} {0 {1.0 1.0 1.0}}
|
||||
}
|
||||
|
||||
reset_db
|
||||
optimization_control db all 0
|
||||
do_execsql_test 61.3.0 {
|
||||
CREATE TABLE t1(a);
|
||||
CREATE TABLE t2(y);
|
||||
}
|
||||
|
||||
do_execsql_test 61.3.1 {
|
||||
SELECT (
|
||||
SELECT count(a) OVER ( ORDER BY (SELECT sum(y) FROM t2) )
|
||||
+ total(a) OVER()
|
||||
)
|
||||
FROM t1
|
||||
} {}
|
||||
do_execsql_test 61.4.2 {
|
||||
SELECT (
|
||||
SELECT count(a) OVER ( ORDER BY sum(a) )
|
||||
+ total(a) OVER()
|
||||
)
|
||||
FROM t1
|
||||
} {0.0}
|
||||
|
||||
do_catchsql_test 61.4.3 {
|
||||
SELECT
|
||||
sum(a) OVER ( ORDER BY a )
|
||||
FROM t1
|
||||
ORDER BY (SELECT sum(a) FROM t2)
|
||||
} {1 {misuse of aggregate: sum()}}
|
||||
do_execsql_test 61.4.4 {
|
||||
SELECT
|
||||
sum(a) OVER ( ORDER BY a )
|
||||
FROM t1
|
||||
ORDER BY (SELECT sum(y) FROM t2)
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
reset_db
|
||||
|
Reference in New Issue
Block a user