# name: test/sql/pivot/pivot_tpch.test_slow # description: Test pivot on the TPC-H dataset # group: [pivot] require tpch statement ok CALL dbgen(sf=0.1); query IIIII FROM (PIVOT lineitem ON l_shipinstruct USING SUM(l_quantity) GROUP BY l_returnflag) ORDER BY ALL; ---- A 943655 940094 946224 944227 N 1938403 1930781 1951198 1954697 R 950702 947111 937692 950018 query IIIII SELECT * FROM lineitem PIVOT (SUM(l_quantity) FOR l_shipinstruct IN ('COLLECT COD', 'DELIVER IN PERSON', 'NONE', 'TAKE BACK RETURN') GROUP BY l_returnflag) ORDER BY ALL; ---- A 943655 940094 946224 944227 N 1938403 1930781 1951198 1954697 R 950702 947111 937692 950018 query IIIII SELECT * FROM (SELECT l_shipinstruct, l_quantity, l_returnflag FROM lineitem) PIVOT (SUM(l_quantity) FOR l_shipinstruct IN ('COLLECT COD', 'DELIVER IN PERSON', 'NONE', 'TAKE BACK RETURN')) ORDER BY ALL; ---- A 943655 940094 946224 944227 N 1938403 1930781 1951198 1954697 R 950702 947111 937692 950018 query IIIIIIII FROM (PIVOT (SELECT YEAR(l_shipdate) AS year, l_returnflag, l_quantity FROM lineitem) ON year USING SUM(l_quantity)) ORDER BY ALL ---- A 968197 1138593 1177788 489622 NULL NULL NULL N NULL NULL NULL 1362746 2331027 2312320 1768986 R 984816 1143586 1170734 486387 NULL NULL NULL query IIIIIIII SELECT * FROM (SELECT YEAR(l_shipdate) AS year, l_returnflag, l_quantity FROM lineitem) PIVOT (SUM(l_quantity) FOR year IN (1992, 1993, 1994, 1995, 1996, 1997, 1998)) ORDER BY ALL ---- A 968197 1138593 1177788 489622 NULL NULL NULL N NULL NULL NULL 1362746 2331027 2312320 1768986 R 984816 1143586 1170734 486387 NULL NULL NULL # pivot TPC-H with order by query IIIII PIVOT lineitem ON l_quantity IN (SELECT l_quantity FROM (SELECT l_quantity, SUM(l_extendedprice) FROM lineitem GROUP BY ALL ORDER BY 2 DESC LIMIT 3)) USING SUM(l_extendedprice) GROUP BY l_returnflag, l_linestatus ORDER BY ALL ---- A F 209534220.50 206021055.17 195552797.28 N F 5063584.50 4429644.59 4883853.60 N O 417586267.50 416159447.06 405550037.76 R F 208093392.50 203387031.75 207333386.88 query IIIII PIVOT lineitem ON l_quantity IN (SELECT l_quantity FROM (SELECT l_quantity, SUM(l_extendedprice) FROM lineitem GROUP BY ALL ORDER BY 2 LIMIT 3)) USING SUM(l_extendedprice) GROUP BY l_returnflag, l_linestatus ORDER BY ALL ---- A F 4271754.85 8199789.34 12264783.63 N F 130194.90 229144.78 281071.35 N O 8325866.03 16956521.54 25251628.56 R F 4181125.20 8312749.92 12666114.42