mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-08 06:12:55 +00:00
Add ORDER BY clause to subquery union tests Updated the SQL and result files for subquery union tests to include an ORDER BY clause, ensuring consistent result ordering. This change aligns with the test case from the DuckDB repository.
185 lines
4.2 KiB
Plaintext
185 lines
4.2 KiB
Plaintext
-- aliasing, from:
|
|
-- https://github.com/duckdb/duckdb/blob/9196dd9b0a163e6c8aada26218803d04be30c562/test/sql/subquery/table/test_aliasing.test
|
|
CREATE TABLE a(ts TIMESTAMP TIME INDEX, i INTEGER);
|
|
|
|
Affected Rows: 0
|
|
|
|
insert into a values (1, 42);
|
|
|
|
Affected Rows: 1
|
|
|
|
SELECT * FROM (SELECT i AS j FROM a GROUP BY j) WHERE j = 42;
|
|
|
|
+----+
|
|
| j |
|
|
+----+
|
|
| 42 |
|
|
+----+
|
|
|
|
SELECT * FROM (SELECT i AS j FROM a GROUP BY i) WHERE j = 42;
|
|
|
|
+----+
|
|
| j |
|
|
+----+
|
|
| 42 |
|
|
+----+
|
|
|
|
DROP TABLE a;
|
|
|
|
Affected Rows: 0
|
|
|
|
-- nested table subquery, from:
|
|
-- https://github.com/duckdb/duckdb/blob/2e4e2913266ddc46c7281d1b992228cb0095954b/test/sql/subquery/table/test_nested_table_subquery.test_slow
|
|
CREATE TABLE test (ts TIMESTAMP TIME INDEX, i INTEGER, j INTEGER);
|
|
|
|
Affected Rows: 0
|
|
|
|
INSERT INTO test VALUES (0, 3, 4), (1, 4, 5), (2, 5, 6);
|
|
|
|
Affected Rows: 3
|
|
|
|
SELECT * FROM (SELECT i, j FROM (SELECT j AS i, i AS j FROM (SELECT j AS i, i AS j FROM test) AS a) AS a) AS a, (SELECT i+1 AS r,j FROM test) AS b, test WHERE a.i=b.r AND test.j=a.i ORDER BY 1;
|
|
|
|
+---+---+---+---+-------------------------+---+---+
|
|
| i | j | r | j | ts | i | j |
|
|
+---+---+---+---+-------------------------+---+---+
|
|
| 4 | 5 | 4 | 4 | 1970-01-01T00:00:00 | 3 | 4 |
|
|
| 5 | 6 | 5 | 5 | 1970-01-01T00:00:00.001 | 4 | 5 |
|
|
+---+---+---+---+-------------------------+---+---+
|
|
|
|
SELECT i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM test)));
|
|
|
|
+---+
|
|
| i |
|
|
+---+
|
|
| 6 |
|
|
| 7 |
|
|
| 8 |
|
|
+---+
|
|
|
|
DROP TABLE test;
|
|
|
|
Affected Rows: 0
|
|
|
|
-- subquery union, from:
|
|
-- https://github.com/duckdb/duckdb/blob/9196dd9b0a163e6c8aada26218803d04be30c562/test/sql/subquery/table/test_subquery_union.test
|
|
SELECT * FROM (SELECT 42) UNION ALL SELECT * FROM (SELECT 43) ORDER BY 1;
|
|
|
|
+-----------+
|
|
| Int64(42) |
|
|
+-----------+
|
|
| 42 |
|
|
| 43 |
|
|
+-----------+
|
|
|
|
-- table subquery, from:
|
|
-- https://github.com/duckdb/duckdb/blob/8704c7d0807d6ce1e2ebcdf6398e1b6cc050e507/test/sql/subquery/table/test_table_subquery.test
|
|
CREATE TABLE test (ts TIMESTAMP TIME INDEX, i INTEGER, j INTEGER);
|
|
|
|
Affected Rows: 0
|
|
|
|
INSERT INTO test VALUES (0, 3, 4), (1, 4, 5), (2, 5, 6);
|
|
|
|
Affected Rows: 3
|
|
|
|
SELECT * FROM (SELECT i, j AS d FROM test ORDER BY i) AS b;
|
|
|
|
+---+---+
|
|
| i | d |
|
|
+---+---+
|
|
| 3 | 4 |
|
|
| 4 | 5 |
|
|
| 5 | 6 |
|
|
+---+---+
|
|
|
|
SELECT b.d FROM (SELECT i * 2 + j AS d FROM test) AS b;
|
|
|
|
+----+
|
|
| d |
|
|
+----+
|
|
| 10 |
|
|
| 13 |
|
|
| 16 |
|
|
+----+
|
|
|
|
SELECT a.i,a.j,b.r,b.j FROM (SELECT i, j FROM test) AS a INNER JOIN (SELECT i+1 AS r,j FROM test) AS b ON a.i=b.r ORDER BY 1;
|
|
|
|
+---+---+---+---+
|
|
| i | j | r | j |
|
|
+---+---+---+---+
|
|
| 4 | 5 | 4 | 4 |
|
|
| 5 | 6 | 5 | 5 |
|
|
+---+---+---+---+
|
|
|
|
SELECT * FROM (SELECT i, j FROM test) AS a, (SELECT i+1 AS r,j FROM test) AS b, test WHERE a.i=b.r AND test.j=a.i ORDER BY 1;
|
|
|
|
+---+---+---+---+-------------------------+---+---+
|
|
| i | j | r | j | ts | i | j |
|
|
+---+---+---+---+-------------------------+---+---+
|
|
| 4 | 5 | 4 | 4 | 1970-01-01T00:00:00 | 3 | 4 |
|
|
| 5 | 6 | 5 | 5 | 1970-01-01T00:00:00.001 | 4 | 5 |
|
|
+---+---+---+---+-------------------------+---+---+
|
|
|
|
SELECT sum(x) FROM (SELECT i AS x FROM test GROUP BY i) sq;
|
|
|
|
+-----------+
|
|
| SUM(sq.x) |
|
|
+-----------+
|
|
| 12 |
|
|
+-----------+
|
|
|
|
SELECT sum(x) FROM (SELECT i+1 AS x FROM test GROUP BY x) sq;
|
|
|
|
+-----------+
|
|
| SUM(sq.x) |
|
|
+-----------+
|
|
| 15 |
|
|
+-----------+
|
|
|
|
DROP TABLE test;
|
|
|
|
Affected Rows: 0
|
|
|
|
-- test unamed subquery, from:
|
|
-- https://github.com/duckdb/duckdb/blob/00a605270719941ca0412ad5d0a14b1bdfbf9eb5/test/sql/subquery/table/test_unnamed_subquery.test
|
|
SELECT a FROM (SELECT 42 a);
|
|
|
|
+----+
|
|
| a |
|
|
+----+
|
|
| 42 |
|
|
+----+
|
|
|
|
SELECT * FROM (SELECT 42 a), (SELECT 43 b);
|
|
|
|
+----+----+
|
|
| a | b |
|
|
+----+----+
|
|
| 42 | 43 |
|
|
+----+----+
|
|
|
|
SELECT * FROM (VALUES (42, 43));
|
|
|
|
+---------+---------+
|
|
| column1 | column2 |
|
|
+---------+---------+
|
|
| 42 | 43 |
|
|
+---------+---------+
|
|
|
|
SELECT * FROM (SELECT 42 a), (SELECT 43 b), (SELECT 44 c), (SELECT 45 d);
|
|
|
|
+----+----+----+----+
|
|
| a | b | c | d |
|
|
+----+----+----+----+
|
|
| 42 | 43 | 44 | 45 |
|
|
+----+----+----+----+
|
|
|
|
SELECT * FROM (SELECT * FROM (SELECT 42 a), (SELECT 43 b)) JOIN (SELECT 44 c) ON (true) JOIN (SELECT 45 d) ON (true);
|
|
|
|
+----+----+----+----+
|
|
| a | b | c | d |
|
|
+----+----+----+----+
|
|
| 42 | 43 | 44 | 45 |
|
|
+----+----+----+----+
|
|
|