487 lines
9.7 KiB
Plaintext
487 lines
9.7 KiB
Plaintext
# name: test/issues/monetdb/analytics13.test_slow
|
|
# description: MonetDB Test for grouping sets
|
|
# group: [monetdb]
|
|
|
|
statement ok
|
|
PRAGMA enable_verification
|
|
|
|
statement ok
|
|
CREATE TABLE tbl_ProductSales (ColID int, Product_Category varchar(64), Product_Name varchar(64), TotalSales int);
|
|
|
|
statement ok
|
|
CREATE TABLE another_T (col1 INT, col2 INT, col3 INT, col4 INT, col5 INT, col6 INT, col7 INT, col8 INT);
|
|
|
|
statement ok
|
|
INSERT INTO tbl_ProductSales VALUES (1,'Game','Mobo Game',200),(2,'Game','PKO Game',400),(3,'Fashion','Shirt',500),(4,'Fashion','Shorts',100);
|
|
|
|
statement ok
|
|
INSERT INTO another_T VALUES (1,2,3,4,5,6,7,8), (11,22,33,44,55,66,77,88), (111,222,333,444,555,666,777,888), (1111,2222,3333,4444,5555,6666,7777,8888);
|
|
|
|
statement error
|
|
SELECT
|
|
(SELECT GROUPING(colID) FROM tbl_ProductSales)
|
|
FROM another_T t1
|
|
----
|
|
|
|
query I rowsort
|
|
SELECT
|
|
col1 IN (SELECT ColID FROM tbl_ProductSales)
|
|
FROM another_T
|
|
GROUP BY ROLLUP(col1)
|
|
----
|
|
0
|
|
0
|
|
0
|
|
1
|
|
NULL
|
|
|
|
query I rowsort
|
|
SELECT
|
|
col1 IN (SELECT ColID + col1 FROM tbl_ProductSales)
|
|
FROM another_T
|
|
GROUP BY ROLLUP(col1)
|
|
----
|
|
0
|
|
0
|
|
0
|
|
0
|
|
NULL
|
|
|
|
query I rowsort
|
|
SELECT
|
|
col1 IN (SELECT SUM(ColID + col1) FROM tbl_ProductSales)
|
|
FROM another_T
|
|
GROUP BY ROLLUP(col1)
|
|
----
|
|
0
|
|
0
|
|
0
|
|
0
|
|
NULL
|
|
|
|
query I rowsort
|
|
SELECT
|
|
col3 > ALL (SELECT 1 FROM tbl_ProductSales HAVING MIN(col4) > 30)
|
|
FROM another_T
|
|
GROUP BY ROLLUP(col3, col4)
|
|
----
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
|
|
query I rowsort
|
|
SELECT
|
|
col1 = ALL (SELECT 1 FROM tbl_ProductSales HAVING MIN(col2) IS NULL)
|
|
FROM another_T
|
|
GROUP BY CUBE(col1, col2)
|
|
----
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
1
|
|
|
|
query I rowsort
|
|
SELECT
|
|
SUM(col1) IN (SELECT DISTINCT col2 FROM another_T GROUP BY col2)
|
|
FROM another_T
|
|
GROUP BY CUBE(col4)
|
|
----
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
|
|
query I rowsort
|
|
SELECT
|
|
1 IN (SELECT 1 FROM tbl_ProductSales GROUP BY CUBE(t1.col1, tbl_ProductSales.ColID))
|
|
FROM another_T t1
|
|
----
|
|
1
|
|
1
|
|
1
|
|
1
|
|
|
|
query I rowsort
|
|
SELECT
|
|
t1.col1 IN (SELECT ColID FROM tbl_ProductSales GROUP BY CUBE(t1.col1, tbl_ProductSales.ColID))
|
|
FROM another_T t1
|
|
GROUP BY CUBE(col1, col2)
|
|
----
|
|
1
|
|
1
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
|
|
query IIIIIII rowsort
|
|
SELECT
|
|
NOT GROUPING(t1.col6) IN (SELECT SUM(t1.col6) FROM tbl_ProductSales tp HAVING MAX(t1.col1) > MIN(tp.colID)),
|
|
GROUPING(t1.col6) IN (SELECT SUM(t1.col7) HAVING GROUPING(t1.col7) < SUM(t1.col4)),
|
|
GROUPING(t1.col6) = ALL (SELECT 1),
|
|
GROUPING(t1.col6) = ALL (SELECT SUM(t1.col7)),
|
|
SUM(t1.col6) = ALL (SELECT GROUPING(t1.col7)),
|
|
GROUPING(t1.col6) = ALL (SELECT GROUPING(t1.col7)),
|
|
GROUPING(t1.col6) = ALL (SELECT GROUPING(t1.col7) FROM tbl_ProductSales)
|
|
FROM another_T t1
|
|
GROUP BY CUBE(t1.col6, t1.col7)
|
|
----
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
1
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
1
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
1
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
1
|
|
1
|
|
0
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
0
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
0
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
0
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
0
|
|
1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
|
|
query IIIIIII rowsort
|
|
SELECT
|
|
DISTINCT
|
|
NOT GROUPING(t1.col6) IN (SELECT SUM(t1.col6) FROM tbl_ProductSales tp HAVING MAX(t1.col1) > MIN(tp.colID)),
|
|
GROUPING(t1.col6) IN (SELECT SUM(t1.col7) HAVING GROUPING(t1.col7) < SUM(t1.col4)),
|
|
GROUPING(t1.col6) = ALL (SELECT 1),
|
|
GROUPING(t1.col6) = ALL (SELECT SUM(t1.col7)),
|
|
SUM(t1.col6) = ALL (SELECT GROUPING(t1.col7)),
|
|
GROUPING(t1.col6) = ALL (SELECT GROUPING(t1.col7)),
|
|
GROUPING(t1.col6) = ALL (SELECT GROUPING(t1.col7) FROM tbl_ProductSales)
|
|
FROM another_T t1
|
|
GROUP BY CUBE(t1.col6, t1.col7)
|
|
----
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
1
|
|
1
|
|
0
|
|
1
|
|
0
|
|
0
|
|
0
|
|
0
|
|
1
|
|
0
|
|
1
|
|
0
|
|
0
|
|
1
|
|
1
|
|
|
|
query IIIII rowsort
|
|
SELECT
|
|
NOT col1 * col5 = ALL (SELECT 1 FROM tbl_ProductSales HAVING MAX(col2) > 2),
|
|
NOT AVG(col2) * col1 <> ANY (SELECT 20 FROM tbl_ProductSales HAVING MAX(col1) IS NULL),
|
|
NOT EXISTS (SELECT ColID - 12 FROM tbl_ProductSales GROUP BY ColID HAVING MAX(col1) IS NOT NULL OR MIN(col1) < MIN(col2)),
|
|
CAST (NOT col1 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) | CAST (col2 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER),
|
|
CAST (EXISTS (SELECT MAX(col5) * MAX(col4) FROM another_T GROUP BY col5, col4) AS INTEGER) & CAST (GROUPING(col1, col5) IN (SELECT DISTINCT col2 FROM another_T GROUP BY col2) AS INTEGER)
|
|
FROM another_T
|
|
GROUP BY CUBE(col1, col2, col5)
|
|
----
|
|
145 values hashing to 2180373d9debdb69ad704a767deb2e0a
|
|
|
|
query IIIII rowsort
|
|
SELECT
|
|
NOT col1 * col5 = ALL (SELECT 1 FROM tbl_ProductSales HAVING MAX(col2) > 2) AS a1,
|
|
NOT AVG(col2) * col1 <> ANY (SELECT 20 FROM tbl_ProductSales HAVING MAX(col1) IS NULL) AS a2,
|
|
NOT EXISTS (SELECT ColID - 12 FROM tbl_ProductSales GROUP BY ColID HAVING MAX(col1) IS NOT NULL OR MIN(col1) < MIN(col2)) AS a3,
|
|
CAST (NOT col1 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) | CAST (col2 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) AS a4,
|
|
CAST (EXISTS (SELECT MAX(col5) * MAX(col4) FROM another_T GROUP BY col5, col4) AS INTEGER) & CAST (GROUPING(col1, col5) IN (SELECT DISTINCT col2 FROM another_T GROUP BY col2) AS INTEGER) AS a5
|
|
FROM another_T
|
|
GROUP BY CUBE(col1, col2, col5)
|
|
ORDER BY a1 NULLS FIRST, a2 NULLS FIRST, a3 NULLS FIRST, a4 NULLS FIRST, a5 NULLS FIRST
|
|
----
|
|
145 values hashing to 2180373d9debdb69ad704a767deb2e0a
|
|
|
|
query IRIIIIII
|
|
SELECT
|
|
GROUPING(col1, col2, col3, col4, col5, col6, col7, col8), AVG(col1), CAST(SUM(col2) * 3 AS BIGINT), col3 + col4,
|
|
CAST(MAX(col5) * MIN(col6) AS BIGINT), col7, col1 IN (SELECT ColID FROM tbl_ProductSales), col2 IN (SELECT ColID + col3 FROM tbl_ProductSales)
|
|
FROM another_T
|
|
GROUP BY ROLLUP(col1, col2, col3, col4, col5, col6, col7, col8)
|
|
ORDER BY GROUPING(col1, col2, col3, col4, col5, col6, col7, col8), 2, 3, 4
|
|
----
|
|
0 1.00000000000000000000 6 7 30 7 True False
|
|
0 11.0000000000000000 66 77 3630 77 False False
|
|
0 111.0000000000000000 666 777 369630 777 False False
|
|
0 1111.0000000000000000 6666 7777 37029630 7777 False False
|
|
1 1.00000000000000000000 6 7 30 7 True False
|
|
1 11.0000000000000000 66 77 3630 77 False False
|
|
1 111.0000000000000000 666 777 369630 777 False False
|
|
1 1111.0000000000000000 6666 7777 37029630 7777 False False
|
|
3 1.00000000000000000000 6 7 30 NULL True False
|
|
3 11.0000000000000000 66 77 3630 NULL False False
|
|
3 111.0000000000000000 666 777 369630 NULL False False
|
|
3 1111.0000000000000000 6666 7777 37029630 NULL False False
|
|
7 1.00000000000000000000 6 7 30 NULL True False
|
|
7 11.0000000000000000 66 77 3630 NULL False False
|
|
7 111.0000000000000000 666 777 369630 NULL False False
|
|
7 1111.0000000000000000 6666 7777 37029630 NULL False False
|
|
15 1.00000000000000000000 6 7 30 NULL True False
|
|
15 11.0000000000000000 66 77 3630 NULL False False
|
|
15 111.0000000000000000 666 777 369630 NULL False False
|
|
15 1111.0000000000000000 6666 7777 37029630 NULL False False
|
|
31 1.00000000000000000000 6 NULL 30 NULL True False
|
|
31 11.0000000000000000 66 NULL 3630 NULL False False
|
|
31 111.0000000000000000 666 NULL 369630 NULL False False
|
|
31 1111.0000000000000000 6666 NULL 37029630 NULL False False
|
|
63 1.00000000000000000000 6 NULL 30 NULL True NULL
|
|
63 11.0000000000000000 66 NULL 3630 NULL False NULL
|
|
63 111.0000000000000000 666 NULL 369630 NULL False NULL
|
|
63 1111.0000000000000000 6666 NULL 37029630 NULL False NULL
|
|
127 1.00000000000000000000 6 NULL 30 NULL True NULL
|
|
127 11.0000000000000000 66 NULL 3630 NULL False NULL
|
|
127 111.0000000000000000 666 NULL 369630 NULL False NULL
|
|
127 1111.0000000000000000 6666 NULL 37029630 NULL False NULL
|
|
255 308.5000000000000000 7404 NULL 33330 NULL NULL NULL
|
|
|
|
query I rowsort
|
|
SELECT
|
|
DISTINCT
|
|
NOT col1 IN (SELECT col2 FROM another_T GROUP BY col2)
|
|
FROM another_T
|
|
GROUP BY ROLLUP(col1)
|
|
----
|
|
1
|
|
NULL
|
|
|
|
query IIIII rowsort
|
|
SELECT
|
|
DISTINCT
|
|
NOT col1 * col5 = ALL (SELECT 1 FROM tbl_ProductSales HAVING MAX(col2) > 2),
|
|
NOT AVG(col2) * col1 <> ANY (SELECT 20 FROM tbl_ProductSales HAVING MAX(col1) IS NULL),
|
|
NOT EXISTS (SELECT ColID - 12 FROM tbl_ProductSales GROUP BY ColID HAVING MAX(col1) IS NOT NULL OR MIN(col1) < MIN(col2)),
|
|
CAST (NOT col1 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) | CAST (col2 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER),
|
|
CAST (EXISTS (SELECT MAX(col5) * MAX(col4) FROM another_T GROUP BY col5, col4) AS INTEGER) & CAST (GROUPING(col1, col5) IN (SELECT DISTINCT col2 FROM another_T GROUP BY col2) AS INTEGER)
|
|
FROM another_T
|
|
GROUP BY CUBE(col1, col2, col5)
|
|
----
|
|
0
|
|
1
|
|
0
|
|
1
|
|
0
|
|
0
|
|
1
|
|
0
|
|
NULL
|
|
0
|
|
0
|
|
1
|
|
0
|
|
NULL
|
|
1
|
|
1
|
|
1
|
|
0
|
|
1
|
|
0
|
|
1
|
|
1
|
|
0
|
|
NULL
|
|
0
|
|
NULL
|
|
1
|
|
0
|
|
1
|
|
0
|
|
NULL
|
|
1
|
|
0
|
|
NULL
|
|
0
|
|
NULL
|
|
1
|
|
0
|
|
NULL
|
|
1
|
|
|
|
query IIIII rowsort
|
|
SELECT
|
|
DISTINCT
|
|
NOT col1 * col5 = ALL (SELECT 1 FROM tbl_ProductSales HAVING MAX(col2) > 2) AS a1,
|
|
NOT AVG(col2) * col1 <> ANY (SELECT 20 FROM tbl_ProductSales HAVING MAX(col1) IS NULL) AS a2,
|
|
NOT EXISTS (SELECT ColID - 12 FROM tbl_ProductSales GROUP BY ColID HAVING MAX(col1) IS NOT NULL OR MIN(col1) < MIN(col2)) AS a3,
|
|
CAST (NOT col1 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) | CAST (col2 IN (SELECT col2 FROM another_T GROUP BY col2) AS INTEGER) AS a4,
|
|
CAST (EXISTS (SELECT MAX(col5) * MAX(col4) FROM another_T GROUP BY col5, col4) AS INTEGER) & CAST (GROUPING(col1, col5) IN (SELECT DISTINCT col2 FROM another_T GROUP BY col2) AS INTEGER) AS a5
|
|
FROM another_T
|
|
GROUP BY CUBE(col1, col2, col5)
|
|
ORDER BY a1 NULLS FIRST, a2 NULLS FIRST, a3 NULLS FIRST, a4 NULLS FIRST, a5 NULLS FIRST
|
|
----
|
|
0
|
|
1
|
|
0
|
|
1
|
|
0
|
|
0
|
|
1
|
|
0
|
|
NULL
|
|
0
|
|
0
|
|
1
|
|
0
|
|
NULL
|
|
1
|
|
1
|
|
1
|
|
0
|
|
1
|
|
0
|
|
1
|
|
1
|
|
0
|
|
NULL
|
|
0
|
|
NULL
|
|
1
|
|
0
|
|
1
|
|
0
|
|
NULL
|
|
1
|
|
0
|
|
NULL
|
|
0
|
|
NULL
|
|
1
|
|
0
|
|
NULL
|
|
1
|
|
|
|
query I rowsort
|
|
SELECT
|
|
NOT GROUPING(t1.col2, t1.col4) <> ALL (SELECT t1.col2 FROM tbl_ProductSales tp WHERE tp.colID = 1) a1
|
|
FROM another_T t1
|
|
GROUP BY ROLLUP(t1.col1, t1.col2), GROUPING SETS ((t1.col4))
|
|
HAVING (t1.col1 = ANY (SELECT MAX(ColID + col2) FROM tbl_ProductSales)) NOT IN
|
|
((SELECT NOT EXISTS (SELECT t1.col2 FROM tbl_ProductSales WHERE tbl_ProductSales.ColID = t1.col1)) UNION ALL
|
|
(SELECT NOT GROUPING(t1.col1) BETWEEN (SELECT MAX(t1.col7) EXCEPT SELECT tp.ColID FROM tbl_ProductSales tp) AND (SELECT MIN(t1.col5) EXCEPT SELECT t1.col2)))
|
|
ORDER BY a1 DESC NULLS FIRST
|
|
----
|
|
0
|
|
0
|
|
0
|
|
|
|
statement ok
|
|
DROP TABLE tbl_ProductSales
|
|
|
|
statement ok
|
|
DROP TABLE another_T
|