| # TPCH-Q1 |
| # Q1 - Pricing Summary Report Query |
| select |
| l_returnflag, |
| l_linestatus, |
| sum(l_quantity) as sum_qty, |
| sum(l_extendedprice) as sum_base_price, |
| sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, |
| sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, |
| avg(l_quantity) as avg_qty, |
| avg(l_extendedprice) as avg_price, |
| avg(l_discount) as avg_disc, |
| count(*) as count_order |
| from |
| lineitem |
| where |
| l_shipdate <= '1998-09-02' |
| group by |
| l_returnflag, |
| l_linestatus |
| order by |
| l_returnflag, |
| l_linestatus |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 02:SORT |
| | order by: l_returnflag ASC, l_linestatus ASC |
| | |
| 01:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_quantity), sum(tpch.lineitem.l_extendedprice), sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)), sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount) * (1 + tpch.lineitem.l_tax)), avg(tpch.lineitem.l_quantity), avg(tpch.lineitem.l_extendedprice), avg(tpch.lineitem.l_discount), count(*) |
| | group by: tpch.lineitem.l_returnflag, tpch.lineitem.l_linestatus |
| | |
| 00:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| predicates: tpch.lineitem.l_shipdate <= '1998-09-02' |
| ==== |
| # TPCH-Q2 |
| # Q2 - Minimum Cost Supplier Query |
| select |
| s_acctbal, |
| s_name, |
| n_name, |
| p_partkey, |
| p_mfgr, |
| s_address, |
| s_phone, |
| s_comment |
| from |
| part, |
| supplier, |
| partsupp, |
| nation, |
| region |
| where |
| p_partkey = ps_partkey |
| and s_suppkey = ps_suppkey |
| and p_size = 15 |
| and p_type like '%BRASS' |
| and s_nationkey = n_nationkey |
| and n_regionkey = r_regionkey |
| and r_name = 'EUROPE' |
| and ps_supplycost = ( |
| select |
| min(ps_supplycost) |
| from |
| tpch.partsupp, |
| tpch.supplier, |
| tpch.nation, |
| tpch.region |
| where |
| p_partkey = ps_partkey |
| and s_suppkey = ps_suppkey |
| and s_nationkey = n_nationkey |
| and n_regionkey = r_regionkey |
| and r_name = 'EUROPE' |
| ) |
| order by |
| s_acctbal desc, |
| n_name, |
| s_name, |
| p_partkey |
| limit 100 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 18:TOP-N [LIMIT=100] |
| | order by: s_acctbal DESC, n_name ASC, s_name ASC, p_partkey ASC |
| | |
| 17:HASH JOIN [RIGHT SEMI JOIN] |
| | hash predicates: ps_partkey = tpch.part.p_partkey, min(ps_supplycost) = tpch.partsupp.ps_supplycost |
| | runtime filters: RF000 <- tpch.part.p_partkey |
| | |
| |--16:HASH JOIN [INNER JOIN] |
| | | hash predicates: tpch.nation.n_regionkey = tpch.region.r_regionkey |
| | | runtime filters: RF005 <- tpch.region.r_regionkey |
| | | |
| | |--04:SCAN HDFS [tpch.region] |
| | | partitions=1/1 files=1 size=384B |
| | | predicates: tpch.region.r_name = 'EUROPE' |
| | | |
| | 15:HASH JOIN [INNER JOIN] |
| | | hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey |
| | | runtime filters: RF006 <- tpch.nation.n_nationkey |
| | | |
| | |--03:SCAN HDFS [tpch.nation] |
| | | partitions=1/1 files=1 size=2.15KB |
| | | runtime filters: RF005 -> tpch.nation.n_regionkey |
| | | |
| | 14:HASH JOIN [INNER JOIN] |
| | | hash predicates: tpch.supplier.s_suppkey = tpch.partsupp.ps_suppkey |
| | | runtime filters: RF007 <- tpch.partsupp.ps_suppkey |
| | | |
| | |--13:HASH JOIN [INNER JOIN] |
| | | | hash predicates: tpch.partsupp.ps_partkey = tpch.part.p_partkey |
| | | | runtime filters: RF008 <- tpch.part.p_partkey |
| | | | |
| | | |--00:SCAN HDFS [tpch.part] |
| | | | partitions=1/1 files=1 size=22.83MB |
| | | | predicates: tpch.part.p_size = 15, tpch.part.p_type LIKE '%BRASS' |
| | | | |
| | | 02:SCAN HDFS [tpch.partsupp] |
| | | partitions=1/1 files=1 size=112.71MB |
| | | runtime filters: RF008 -> tpch.partsupp.ps_partkey |
| | | |
| | 01:SCAN HDFS [tpch.supplier] |
| | partitions=1/1 files=1 size=1.33MB |
| | runtime filters: RF006 -> tpch.supplier.s_nationkey, RF007 -> tpch.supplier.s_suppkey |
| | |
| 12:AGGREGATE [FINALIZE] |
| | output: min(ps_supplycost) |
| | group by: ps_partkey |
| | |
| 11:HASH JOIN [INNER JOIN] |
| | hash predicates: n_regionkey = r_regionkey |
| | runtime filters: RF002 <- r_regionkey |
| | |
| |--08:SCAN HDFS [tpch.region] |
| | partitions=1/1 files=1 size=384B |
| | predicates: r_name = 'EUROPE' |
| | |
| 10:HASH JOIN [INNER JOIN] |
| | hash predicates: s_nationkey = n_nationkey |
| | runtime filters: RF003 <- n_nationkey |
| | |
| |--07:SCAN HDFS [tpch.nation] |
| | partitions=1/1 files=1 size=2.15KB |
| | runtime filters: RF002 -> n_regionkey |
| | |
| 09:HASH JOIN [INNER JOIN] |
| | hash predicates: ps_suppkey = s_suppkey |
| | runtime filters: RF004 <- s_suppkey |
| | |
| |--06:SCAN HDFS [tpch.supplier] |
| | partitions=1/1 files=1 size=1.33MB |
| | runtime filters: RF003 -> s_nationkey |
| | |
| 05:SCAN HDFS [tpch.partsupp] |
| partitions=1/1 files=1 size=112.71MB |
| runtime filters: RF000 -> tpch.partsupp.ps_partkey, RF004 -> ps_suppkey |
| ==== |
| # TPCH-Q3 |
| # Q3 - Shipping Priority Query |
| select |
| l_orderkey, |
| sum(l_extendedprice * (1 - l_discount)) as revenue, |
| o_orderdate, |
| o_shippriority |
| from |
| customer, |
| orders, |
| lineitem |
| where |
| c_mktsegment = 'BUILDING' |
| and c_custkey = o_custkey |
| and l_orderkey = o_orderkey |
| and o_orderdate < '1995-03-15' |
| and l_shipdate > '1995-03-15' |
| group by |
| l_orderkey, |
| o_orderdate, |
| o_shippriority |
| order by |
| revenue desc, |
| o_orderdate |
| limit 10 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 06:TOP-N [LIMIT=10] |
| | order by: sum(l_extendedprice * (1 - l_discount)) DESC, o_orderdate ASC |
| | |
| 05:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)) |
| | group by: tpch.lineitem.l_orderkey, tpch.orders.o_orderdate, tpch.orders.o_shippriority |
| | |
| 04:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey |
| | runtime filters: RF000 <- tpch.customer.c_custkey |
| | |
| |--00:SCAN HDFS [tpch.customer] |
| | partitions=1/1 files=1 size=23.08MB |
| | predicates: tpch.customer.c_mktsegment = 'BUILDING' |
| | |
| 03:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey |
| | runtime filters: RF001 <- tpch.orders.o_orderkey |
| | |
| |--01:SCAN HDFS [tpch.orders] |
| | partitions=1/1 files=1 size=162.56MB |
| | predicates: tpch.orders.o_orderdate < '1995-03-15' |
| | runtime filters: RF000 -> tpch.orders.o_custkey |
| | |
| 02:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| predicates: tpch.lineitem.l_shipdate > '1995-03-15' |
| runtime filters: RF001 -> tpch.lineitem.l_orderkey |
| ==== |
| # TPCH-Q4 |
| # Q4 - Order Priority Checking Query |
| select |
| o_orderpriority, |
| count(*) as order_count |
| from |
| orders |
| where |
| o_orderdate >= '1993-07-01' |
| and o_orderdate < '1993-10-01' |
| and exists ( |
| select |
| * |
| from |
| lineitem |
| where |
| l_orderkey = o_orderkey |
| and l_commitdate < l_receiptdate |
| ) |
| group by |
| o_orderpriority |
| order by |
| o_orderpriority |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 04:SORT |
| | order by: o_orderpriority ASC |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: count(*) |
| | group by: tpch.orders.o_orderpriority |
| | |
| 02:HASH JOIN [RIGHT SEMI JOIN] |
| | hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey |
| | runtime filters: RF000 <- tpch.orders.o_orderkey |
| | |
| |--00:SCAN HDFS [tpch.orders] |
| | partitions=1/1 files=1 size=162.56MB |
| | predicates: tpch.orders.o_orderdate < '1993-10-01', tpch.orders.o_orderdate >= '1993-07-01' |
| | |
| 01:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| predicates: tpch.lineitem.l_commitdate < tpch.lineitem.l_receiptdate |
| runtime filters: RF000 -> tpch.lineitem.l_orderkey |
| ==== |
| # TPCH-Q5 |
| # Q5 - Local Supplier Volume Query |
| select |
| n_name, |
| sum(l_extendedprice * (1 - l_discount)) as revenue |
| from |
| customer, |
| orders, |
| lineitem, |
| supplier, |
| nation, |
| region |
| where |
| c_custkey = o_custkey |
| and l_orderkey = o_orderkey |
| and l_suppkey = s_suppkey |
| and c_nationkey = s_nationkey |
| and s_nationkey = n_nationkey |
| and n_regionkey = r_regionkey |
| and r_name = 'ASIA' |
| and o_orderdate >= '1994-01-01' |
| and o_orderdate < '1995-01-01' |
| group by |
| n_name |
| order by |
| revenue desc |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 12:SORT |
| | order by: sum(l_extendedprice * (1 - l_discount)) DESC |
| | |
| 11:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)) |
| | group by: tpch.nation.n_name |
| | |
| 10:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.nation.n_regionkey = tpch.region.r_regionkey |
| | runtime filters: RF000 <- tpch.region.r_regionkey |
| | |
| |--05:SCAN HDFS [tpch.region] |
| | partitions=1/1 files=1 size=384B |
| | predicates: tpch.region.r_name = 'ASIA' |
| | |
| 09:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey |
| | runtime filters: RF001 <- tpch.nation.n_nationkey |
| | |
| |--04:SCAN HDFS [tpch.nation] |
| | partitions=1/1 files=1 size=2.15KB |
| | runtime filters: RF000 -> tpch.nation.n_regionkey |
| | |
| 08:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.customer.c_nationkey = tpch.supplier.s_nationkey, tpch.lineitem.l_suppkey = tpch.supplier.s_suppkey |
| | runtime filters: RF002 <- tpch.supplier.s_nationkey, RF003 <- tpch.supplier.s_suppkey |
| | |
| |--03:SCAN HDFS [tpch.supplier] |
| | partitions=1/1 files=1 size=1.33MB |
| | runtime filters: RF001 -> tpch.supplier.s_nationkey |
| | |
| 07:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey |
| | runtime filters: RF004 <- tpch.customer.c_custkey |
| | |
| |--00:SCAN HDFS [tpch.customer] |
| | partitions=1/1 files=1 size=23.08MB |
| | runtime filters: RF001 -> tpch.customer.c_nationkey, RF002 -> tpch.customer.c_nationkey |
| | |
| 06:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey |
| | runtime filters: RF005 <- tpch.orders.o_orderkey |
| | |
| |--01:SCAN HDFS [tpch.orders] |
| | partitions=1/1 files=1 size=162.56MB |
| | predicates: tpch.orders.o_orderdate < '1995-01-01', tpch.orders.o_orderdate >= '1994-01-01' |
| | runtime filters: RF004 -> tpch.orders.o_custkey |
| | |
| 02:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| runtime filters: RF003 -> tpch.lineitem.l_suppkey, RF005 -> tpch.lineitem.l_orderkey |
| ==== |
| # TPCH-Q6 |
| # Q6 - Forecasting Revenue Change Query |
| select |
| sum(l_extendedprice * l_discount) as revenue |
| from |
| lineitem |
| where |
| l_shipdate >= '1994-01-01' |
| and l_shipdate < '1995-01-01' |
| and l_discount between 0.05 and 0.07 |
| and l_quantity < 24 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 01:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_extendedprice * tpch.lineitem.l_discount) |
| | |
| 00:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| predicates: tpch.lineitem.l_discount <= 0.07, tpch.lineitem.l_discount >= 0.05, tpch.lineitem.l_quantity < 24, tpch.lineitem.l_shipdate < '1995-01-01', tpch.lineitem.l_shipdate >= '1994-01-01' |
| ==== |
| # TPCH-Q7 |
| # Q7 - Volume Shipping Query |
| select |
| supp_nation, |
| cust_nation, |
| l_year, |
| sum(volume) as revenue |
| from ( |
| select |
| n1.n_name as supp_nation, |
| n2.n_name as cust_nation, |
| year(l_shipdate) as l_year, |
| l_extendedprice * (1 - l_discount) as volume |
| from |
| supplier, |
| lineitem, |
| orders, |
| customer, |
| nation n1, |
| nation n2 |
| where |
| s_suppkey = l_suppkey |
| and o_orderkey = l_orderkey |
| and c_custkey = o_custkey |
| and s_nationkey = n1.n_nationkey |
| and c_nationkey = n2.n_nationkey |
| and ( |
| (n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY') |
| or (n1.n_name = 'GERMANY' and n2.n_name = 'FRANCE') |
| ) |
| and l_shipdate between '1995-01-01' and '1996-12-31' |
| ) as shipping |
| group by |
| supp_nation, |
| cust_nation, |
| l_year |
| order by |
| supp_nation, |
| cust_nation, |
| l_year |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 12:SORT |
| | order by: supp_nation ASC, cust_nation ASC, l_year ASC |
| | |
| 11:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)) |
| | group by: tpch.nation.n_name, tpch.nation.n_name, year(tpch.lineitem.l_shipdate) |
| | |
| 10:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.customer.c_nationkey = tpch.nation.n_nationkey |
| | other predicates: ((tpch.nation.n_name = 'FRANCE' AND tpch.nation.n_name = 'GERMANY') OR (tpch.nation.n_name = 'GERMANY' AND tpch.nation.n_name = 'FRANCE')) |
| | runtime filters: RF000 <- tpch.nation.n_nationkey |
| | |
| |--05:SCAN HDFS [tpch.nation] |
| | partitions=1/1 files=1 size=2.15KB |
| | |
| 09:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey |
| | runtime filters: RF001 <- tpch.nation.n_nationkey |
| | |
| |--04:SCAN HDFS [tpch.nation] |
| | partitions=1/1 files=1 size=2.15KB |
| | |
| 08:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey |
| | runtime filters: RF002 <- tpch.customer.c_custkey |
| | |
| |--03:SCAN HDFS [tpch.customer] |
| | partitions=1/1 files=1 size=23.08MB |
| | runtime filters: RF000 -> tpch.customer.c_nationkey |
| | |
| 07:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_suppkey = tpch.supplier.s_suppkey |
| | runtime filters: RF003 <- tpch.supplier.s_suppkey |
| | |
| |--00:SCAN HDFS [tpch.supplier] |
| | partitions=1/1 files=1 size=1.33MB |
| | runtime filters: RF001 -> tpch.supplier.s_nationkey |
| | |
| 06:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey |
| | runtime filters: RF004 <- tpch.orders.o_orderkey |
| | |
| |--02:SCAN HDFS [tpch.orders] |
| | partitions=1/1 files=1 size=162.56MB |
| | runtime filters: RF002 -> tpch.orders.o_custkey |
| | |
| 01:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| predicates: tpch.lineitem.l_shipdate <= '1996-12-31', tpch.lineitem.l_shipdate >= '1995-01-01' |
| runtime filters: RF003 -> tpch.lineitem.l_suppkey, RF004 -> tpch.lineitem.l_orderkey |
| ==== |
| # TPCH-Q8 |
| # Q8 - National Market Share Query |
| select |
| o_year, |
| sum(case |
| when nation = 'BRAZIL' |
| then volume |
| else 0 |
| end) / sum(volume) as mkt_share |
| from ( |
| select |
| year(o_orderdate) as o_year, |
| l_extendedprice * (1 - l_discount) as volume, |
| n2.n_name as nation |
| from |
| part, |
| supplier, |
| lineitem, |
| orders, |
| customer, |
| nation n1, |
| nation n2, |
| region |
| where |
| p_partkey = l_partkey |
| and s_suppkey = l_suppkey |
| and l_orderkey = o_orderkey |
| and o_custkey = c_custkey |
| and c_nationkey = n1.n_nationkey |
| and n1.n_regionkey = r_regionkey |
| and r_name = 'AMERICA' |
| and s_nationkey = n2.n_nationkey |
| and o_orderdate between '1995-01-01' and '1996-12-31' |
| and p_type = 'ECONOMY ANODIZED STEEL' |
| ) as all_nations |
| group by |
| o_year |
| order by |
| o_year |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 16:SORT |
| | order by: o_year ASC |
| | |
| 15:AGGREGATE [FINALIZE] |
| | output: sum(CASE WHEN tpch.nation.n_name = 'BRAZIL' THEN tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount) ELSE 0 END), sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)) |
| | group by: year(tpch.orders.o_orderdate) |
| | |
| 14:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey |
| | runtime filters: RF000 <- tpch.nation.n_nationkey |
| | |
| |--06:SCAN HDFS [tpch.nation] |
| | partitions=1/1 files=1 size=2.15KB |
| | |
| 13:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.nation.n_regionkey = tpch.region.r_regionkey |
| | runtime filters: RF001 <- tpch.region.r_regionkey |
| | |
| |--07:SCAN HDFS [tpch.region] |
| | partitions=1/1 files=1 size=384B |
| | predicates: tpch.region.r_name = 'AMERICA' |
| | |
| 12:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.customer.c_nationkey = tpch.nation.n_nationkey |
| | runtime filters: RF002 <- tpch.nation.n_nationkey |
| | |
| |--05:SCAN HDFS [tpch.nation] |
| | partitions=1/1 files=1 size=2.15KB |
| | runtime filters: RF001 -> tpch.nation.n_regionkey |
| | |
| 11:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.customer.c_custkey = tpch.orders.o_custkey |
| | runtime filters: RF003 <- tpch.orders.o_custkey |
| | |
| |--10:HASH JOIN [INNER JOIN] |
| | | hash predicates: tpch.lineitem.l_suppkey = tpch.supplier.s_suppkey |
| | | runtime filters: RF004 <- tpch.supplier.s_suppkey |
| | | |
| | |--01:SCAN HDFS [tpch.supplier] |
| | | partitions=1/1 files=1 size=1.33MB |
| | | runtime filters: RF000 -> tpch.supplier.s_nationkey |
| | | |
| | 09:HASH JOIN [INNER JOIN] |
| | | hash predicates: tpch.orders.o_orderkey = tpch.lineitem.l_orderkey |
| | | runtime filters: RF005 <- tpch.lineitem.l_orderkey |
| | | |
| | |--08:HASH JOIN [INNER JOIN] |
| | | | hash predicates: tpch.lineitem.l_partkey = tpch.part.p_partkey |
| | | | runtime filters: RF006 <- tpch.part.p_partkey |
| | | | |
| | | |--00:SCAN HDFS [tpch.part] |
| | | | partitions=1/1 files=1 size=22.83MB |
| | | | predicates: tpch.part.p_type = 'ECONOMY ANODIZED STEEL' |
| | | | |
| | | 02:SCAN HDFS [tpch.lineitem] |
| | | partitions=1/1 files=1 size=718.94MB |
| | | runtime filters: RF004 -> tpch.lineitem.l_suppkey, RF006 -> tpch.lineitem.l_partkey |
| | | |
| | 03:SCAN HDFS [tpch.orders] |
| | partitions=1/1 files=1 size=162.56MB |
| | predicates: tpch.orders.o_orderdate <= '1996-12-31', tpch.orders.o_orderdate >= '1995-01-01' |
| | runtime filters: RF005 -> tpch.orders.o_orderkey |
| | |
| 04:SCAN HDFS [tpch.customer] |
| partitions=1/1 files=1 size=23.08MB |
| runtime filters: RF002 -> tpch.customer.c_nationkey, RF003 -> tpch.customer.c_custkey |
| ==== |
| # TPCH-Q9 |
| # Q9 - Product Type Measure Query |
| select |
| nation, |
| o_year, |
| sum(amount) as sum_profit |
| from( |
| select |
| n_name as nation, |
| year(o_orderdate) as o_year, |
| l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount |
| from |
| part, |
| supplier, |
| lineitem, |
| partsupp, |
| orders, |
| nation |
| where |
| s_suppkey = l_suppkey |
| and ps_suppkey = l_suppkey |
| and ps_partkey = l_partkey |
| and p_partkey = l_partkey |
| and o_orderkey = l_orderkey |
| and s_nationkey = n_nationkey |
| and p_name like '%green%' |
| ) as profit |
| group by |
| nation, |
| o_year |
| order by |
| nation, |
| o_year desc |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 12:SORT |
| | order by: nation ASC, o_year DESC |
| | |
| 11:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount) - tpch.partsupp.ps_supplycost * tpch.lineitem.l_quantity) |
| | group by: tpch.nation.n_name, year(tpch.orders.o_orderdate) |
| | |
| 10:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey |
| | runtime filters: RF000 <- tpch.nation.n_nationkey |
| | |
| |--05:SCAN HDFS [tpch.nation] |
| | partitions=1/1 files=1 size=2.15KB |
| | |
| 09:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_partkey = tpch.partsupp.ps_partkey, tpch.lineitem.l_suppkey = tpch.partsupp.ps_suppkey |
| | runtime filters: RF001 <- tpch.partsupp.ps_partkey, RF002 <- tpch.partsupp.ps_suppkey |
| | |
| |--03:SCAN HDFS [tpch.partsupp] |
| | partitions=1/1 files=1 size=112.71MB |
| | |
| 08:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_suppkey = tpch.supplier.s_suppkey |
| | runtime filters: RF003 <- tpch.supplier.s_suppkey |
| | |
| |--01:SCAN HDFS [tpch.supplier] |
| | partitions=1/1 files=1 size=1.33MB |
| | runtime filters: RF000 -> tpch.supplier.s_nationkey, RF002 -> tpch.supplier.s_suppkey |
| | |
| 07:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey |
| | runtime filters: RF004 <- tpch.orders.o_orderkey |
| | |
| |--04:SCAN HDFS [tpch.orders] |
| | partitions=1/1 files=1 size=162.56MB |
| | |
| 06:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_partkey = tpch.part.p_partkey |
| | runtime filters: RF005 <- tpch.part.p_partkey |
| | |
| |--00:SCAN HDFS [tpch.part] |
| | partitions=1/1 files=1 size=22.83MB |
| | predicates: tpch.part.p_name LIKE '%green%' |
| | runtime filters: RF001 -> tpch.part.p_partkey |
| | |
| 02:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| runtime filters: RF001 -> tpch.lineitem.l_partkey, RF002 -> tpch.lineitem.l_suppkey, RF003 -> tpch.lineitem.l_suppkey, RF004 -> tpch.lineitem.l_orderkey, RF005 -> tpch.lineitem.l_partkey |
| ==== |
| # TPCH-Q10 |
| # Q10 - Returned Item Reporting Query |
| # Converted select from multiple tables to joins |
| select |
| c_custkey, |
| c_name, |
| sum(l_extendedprice * (1 - l_discount)) as revenue, |
| c_acctbal, |
| n_name, |
| c_address, |
| c_phone, |
| c_comment |
| from |
| customer, |
| orders, |
| lineitem, |
| nation |
| where |
| c_custkey = o_custkey |
| and l_orderkey = o_orderkey |
| and o_orderdate >= '1993-10-01' |
| and o_orderdate < '1994-01-01' |
| and l_returnflag = 'R' |
| and c_nationkey = n_nationkey |
| group by |
| c_custkey, |
| c_name, |
| c_acctbal, |
| c_phone, |
| n_name, |
| c_address, |
| c_comment |
| order by |
| revenue desc |
| limit 20 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 08:TOP-N [LIMIT=20] |
| | order by: sum(l_extendedprice * (1 - l_discount)) DESC |
| | |
| 07:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)) |
| | group by: tpch.customer.c_custkey, tpch.customer.c_name, tpch.customer.c_acctbal, tpch.customer.c_phone, tpch.nation.n_name, tpch.customer.c_address, tpch.customer.c_comment |
| | |
| 06:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.customer.c_nationkey = tpch.nation.n_nationkey |
| | runtime filters: RF000 <- tpch.nation.n_nationkey |
| | |
| |--03:SCAN HDFS [tpch.nation] |
| | partitions=1/1 files=1 size=2.15KB |
| | |
| 05:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.customer.c_custkey = tpch.orders.o_custkey |
| | runtime filters: RF001 <- tpch.orders.o_custkey |
| | |
| |--04:HASH JOIN [INNER JOIN] |
| | | hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey |
| | | runtime filters: RF002 <- tpch.orders.o_orderkey |
| | | |
| | |--01:SCAN HDFS [tpch.orders] |
| | | partitions=1/1 files=1 size=162.56MB |
| | | predicates: tpch.orders.o_orderdate < '1994-01-01', tpch.orders.o_orderdate >= '1993-10-01' |
| | | |
| | 02:SCAN HDFS [tpch.lineitem] |
| | partitions=1/1 files=1 size=718.94MB |
| | predicates: tpch.lineitem.l_returnflag = 'R' |
| | runtime filters: RF002 -> tpch.lineitem.l_orderkey |
| | |
| 00:SCAN HDFS [tpch.customer] |
| partitions=1/1 files=1 size=23.08MB |
| runtime filters: RF000 -> tpch.customer.c_nationkey, RF001 -> tpch.customer.c_custkey |
| ==== |
| # TPCH-Q11 |
| # Q11 - Important Stock Identification |
| # Modifications: query was rewritten to not have a subquery in the having clause |
| select |
| * |
| from ( |
| select |
| ps_partkey, |
| sum(ps_supplycost * ps_availqty) as value |
| from |
| partsupp, |
| supplier, |
| nation |
| where |
| ps_suppkey = s_suppkey |
| and s_nationkey = n_nationkey |
| and n_name = 'GERMANY' |
| group by |
| ps_partkey |
| ) as inner_query |
| where |
| value > ( |
| select |
| sum(ps_supplycost * ps_availqty) * 0.0001 |
| from |
| partsupp, |
| supplier, |
| nation |
| where |
| ps_suppkey = s_suppkey |
| and s_nationkey = n_nationkey |
| and n_name = 'GERMANY' |
| ) |
| order by |
| value desc |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 13:SORT |
| | order by: value DESC |
| | |
| 12:NESTED LOOP JOIN [INNER JOIN] |
| | predicates: sum(ps_supplycost * ps_availqty) > sum(ps_supplycost * ps_availqty) * 0.0001 |
| | |
| |--11:AGGREGATE [FINALIZE] |
| | | output: sum(tpch.partsupp.ps_supplycost * tpch.partsupp.ps_availqty) |
| | | |
| | 10:HASH JOIN [INNER JOIN] |
| | | hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey |
| | | runtime filters: RF002 <- tpch.nation.n_nationkey |
| | | |
| | |--08:SCAN HDFS [tpch.nation] |
| | | partitions=1/1 files=1 size=2.15KB |
| | | predicates: tpch.nation.n_name = 'GERMANY' |
| | | |
| | 09:HASH JOIN [INNER JOIN] |
| | | hash predicates: tpch.partsupp.ps_suppkey = tpch.supplier.s_suppkey |
| | | runtime filters: RF003 <- tpch.supplier.s_suppkey |
| | | |
| | |--07:SCAN HDFS [tpch.supplier] |
| | | partitions=1/1 files=1 size=1.33MB |
| | | runtime filters: RF002 -> tpch.supplier.s_nationkey |
| | | |
| | 06:SCAN HDFS [tpch.partsupp] |
| | partitions=1/1 files=1 size=112.71MB |
| | runtime filters: RF003 -> tpch.partsupp.ps_suppkey |
| | |
| 05:AGGREGATE [FINALIZE] |
| | output: sum(tpch.partsupp.ps_supplycost * tpch.partsupp.ps_availqty) |
| | group by: tpch.partsupp.ps_partkey |
| | |
| 04:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey |
| | runtime filters: RF000 <- tpch.nation.n_nationkey |
| | |
| |--02:SCAN HDFS [tpch.nation] |
| | partitions=1/1 files=1 size=2.15KB |
| | predicates: tpch.nation.n_name = 'GERMANY' |
| | |
| 03:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.partsupp.ps_suppkey = tpch.supplier.s_suppkey |
| | runtime filters: RF001 <- tpch.supplier.s_suppkey |
| | |
| |--01:SCAN HDFS [tpch.supplier] |
| | partitions=1/1 files=1 size=1.33MB |
| | runtime filters: RF000 -> tpch.supplier.s_nationkey |
| | |
| 00:SCAN HDFS [tpch.partsupp] |
| partitions=1/1 files=1 size=112.71MB |
| runtime filters: RF001 -> tpch.partsupp.ps_suppkey |
| ==== |
| # TPCH-Q12 |
| # Q12 - Shipping Mode and Order Priority Query |
| select |
| l_shipmode, |
| sum(case |
| when o_orderpriority = '1-URGENT' |
| or o_orderpriority = '2-HIGH' |
| then 1 |
| else 0 |
| end) as high_line_count, |
| sum(case |
| when o_orderpriority <> '1-URGENT' |
| and o_orderpriority <> '2-HIGH' |
| then 1 |
| else 0 |
| end) as low_line_count |
| from |
| orders, |
| lineitem |
| where |
| o_orderkey = l_orderkey |
| and l_shipmode in ('MAIL', 'SHIP') |
| and l_commitdate < l_receiptdate |
| and l_shipdate < l_commitdate |
| and l_receiptdate >= '1994-01-01' |
| and l_receiptdate < '1995-01-01' |
| group by |
| l_shipmode |
| order by |
| l_shipmode |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 04:SORT |
| | order by: l_shipmode ASC |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: sum(CASE WHEN tpch.orders.o_orderpriority IN ('1-URGENT', '2-HIGH') THEN 1 ELSE 0 END), sum(CASE WHEN tpch.orders.o_orderpriority != '1-URGENT' AND tpch.orders.o_orderpriority != '2-HIGH' THEN 1 ELSE 0 END) |
| | group by: tpch.lineitem.l_shipmode |
| | |
| 02:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.orders.o_orderkey = tpch.lineitem.l_orderkey |
| | runtime filters: RF000 <- tpch.lineitem.l_orderkey |
| | |
| |--01:SCAN HDFS [tpch.lineitem] |
| | partitions=1/1 files=1 size=718.94MB |
| | predicates: tpch.lineitem.l_shipmode IN ('MAIL', 'SHIP'), tpch.lineitem.l_commitdate < tpch.lineitem.l_receiptdate, tpch.lineitem.l_receiptdate < '1995-01-01', tpch.lineitem.l_receiptdate >= '1994-01-01', tpch.lineitem.l_shipdate < tpch.lineitem.l_commitdate |
| | |
| 00:SCAN HDFS [tpch.orders] |
| partitions=1/1 files=1 size=162.56MB |
| runtime filters: RF000 -> tpch.orders.o_orderkey |
| ==== |
| # TPCH-Q13 |
| # Q13 - Customer Distribution Query |
| select |
| c_count, |
| count(*) as custdist |
| from ( |
| select |
| c_custkey, |
| count(o_orderkey) as c_count |
| from |
| customer left outer join tpch.orders on ( |
| c_custkey = o_custkey |
| and o_comment not like '%special%requests%' |
| ) |
| group by |
| c_custkey |
| ) as c_orders |
| group by |
| c_count |
| order by |
| custdist desc, |
| c_count desc |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 05:SORT |
| | order by: count(*) DESC, c_count DESC |
| | |
| 04:AGGREGATE [FINALIZE] |
| | output: count(*) |
| | group by: count(o_orderkey) |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: count(o_orderkey) |
| | group by: tpch.customer.c_custkey |
| | |
| 02:HASH JOIN [RIGHT OUTER JOIN] |
| | hash predicates: o_custkey = tpch.customer.c_custkey |
| | runtime filters: RF000 <- tpch.customer.c_custkey |
| | |
| |--00:SCAN HDFS [tpch.customer] |
| | partitions=1/1 files=1 size=23.08MB |
| | |
| 01:SCAN HDFS [tpch.orders] |
| partitions=1/1 files=1 size=162.56MB |
| predicates: NOT o_comment LIKE '%special%requests%' |
| runtime filters: RF000 -> o_custkey |
| ==== |
| # TPCH-Q14 |
| # Q14 - Promotion Effect |
| select |
| 100.00 * sum(case |
| when p_type like 'PROMO%' |
| then l_extendedprice * (1 - l_discount) |
| else 0.0 |
| end) / sum(l_extendedprice * (1 - l_discount)) as promo_revenue |
| from |
| lineitem, |
| part |
| where |
| l_partkey = p_partkey |
| and l_shipdate >= '1995-09-01' |
| and l_shipdate < '1995-10-01' |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: sum(CASE WHEN tpch.part.p_type LIKE 'PROMO%' THEN tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount) ELSE 0.0 END), sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)) |
| | |
| 02:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_partkey = tpch.part.p_partkey |
| | runtime filters: RF000 <- tpch.part.p_partkey |
| | |
| |--01:SCAN HDFS [tpch.part] |
| | partitions=1/1 files=1 size=22.83MB |
| | |
| 00:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| predicates: tpch.lineitem.l_shipdate < '1995-10-01', tpch.lineitem.l_shipdate >= '1995-09-01' |
| runtime filters: RF000 -> tpch.lineitem.l_partkey |
| ==== |
| # TPCH-Q15 |
| # Q15 - Top Supplier Query |
| with revenue_view as ( |
| select |
| l_suppkey as supplier_no, |
| sum(l_extendedprice * (1 - l_discount)) as total_revenue |
| from |
| lineitem |
| where |
| l_shipdate >= '1996-01-01' |
| and l_shipdate < '1996-04-01' |
| group by |
| l_suppkey) |
| select |
| s_suppkey, |
| s_name, |
| s_address, |
| s_phone, |
| total_revenue |
| from |
| supplier, |
| revenue_view |
| where |
| s_suppkey = supplier_no |
| and total_revenue = ( |
| select |
| max(total_revenue) |
| from |
| revenue_view |
| ) |
| order by |
| s_suppkey |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 08:SORT |
| | order by: s_suppkey ASC |
| | |
| 07:HASH JOIN [LEFT SEMI JOIN] |
| | hash predicates: sum(l_extendedprice * (1 - l_discount)) = max(total_revenue) |
| | |
| |--05:AGGREGATE [FINALIZE] |
| | | output: max(sum(l_extendedprice * (1 - l_discount))) |
| | | |
| | 04:AGGREGATE [FINALIZE] |
| | | output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)) |
| | | group by: tpch.lineitem.l_suppkey |
| | | |
| | 03:SCAN HDFS [tpch.lineitem] |
| | partitions=1/1 files=1 size=718.94MB |
| | predicates: tpch.lineitem.l_shipdate < '1996-04-01', tpch.lineitem.l_shipdate >= '1996-01-01' |
| | |
| 06:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.supplier.s_suppkey = l_suppkey |
| | runtime filters: RF000 <- l_suppkey |
| | |
| |--02:AGGREGATE [FINALIZE] |
| | | output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)) |
| | | group by: tpch.lineitem.l_suppkey |
| | | |
| | 01:SCAN HDFS [tpch.lineitem] |
| | partitions=1/1 files=1 size=718.94MB |
| | predicates: tpch.lineitem.l_shipdate < '1996-04-01', tpch.lineitem.l_shipdate >= '1996-01-01' |
| | |
| 00:SCAN HDFS [tpch.supplier] |
| partitions=1/1 files=1 size=1.33MB |
| runtime filters: RF000 -> tpch.supplier.s_suppkey |
| ==== |
| # TPCH-Q16 |
| # Q16 - Parts/Supplier Relation Query |
| select |
| p_brand, |
| p_type, |
| p_size, |
| count(distinct ps_suppkey) as supplier_cnt |
| from |
| partsupp, |
| part |
| where |
| p_partkey = ps_partkey |
| and p_brand <> 'Brand#45' |
| and p_type not like 'MEDIUM POLISHED%' |
| and p_size in (49, 14, 23, 45, 19, 3, 36, 9) |
| and ps_suppkey not in ( |
| select |
| s_suppkey |
| from |
| supplier |
| where |
| s_comment like '%Customer%Complaints%' |
| ) |
| group by |
| p_brand, |
| p_type, |
| p_size |
| order by |
| supplier_cnt desc, |
| p_brand, |
| p_type, |
| p_size |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 07:SORT |
| | order by: count(ps_suppkey) DESC, p_brand ASC, p_type ASC, p_size ASC |
| | |
| 06:AGGREGATE [FINALIZE] |
| | output: count(ps_suppkey) |
| | group by: p_brand, p_type, p_size |
| | |
| 05:AGGREGATE |
| | group by: tpch.part.p_brand, tpch.part.p_type, tpch.part.p_size, tpch.partsupp.ps_suppkey |
| | |
| 04:HASH JOIN [NULL AWARE LEFT ANTI JOIN] |
| | hash predicates: tpch.partsupp.ps_suppkey = tpch.supplier.s_suppkey |
| | |
| |--02:SCAN HDFS [tpch.supplier] |
| | partitions=1/1 files=1 size=1.33MB |
| | predicates: tpch.supplier.s_comment LIKE '%Customer%Complaints%' |
| | |
| 03:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.partsupp.ps_partkey = tpch.part.p_partkey |
| | runtime filters: RF000 <- tpch.part.p_partkey |
| | |
| |--01:SCAN HDFS [tpch.part] |
| | partitions=1/1 files=1 size=22.83MB |
| | predicates: tpch.part.p_size IN (49, 14, 23, 45, 19, 3, 36, 9), tpch.part.p_brand != 'Brand#45', NOT tpch.part.p_type LIKE 'MEDIUM POLISHED%' |
| | |
| 00:SCAN HDFS [tpch.partsupp] |
| partitions=1/1 files=1 size=112.71MB |
| runtime filters: RF000 -> tpch.partsupp.ps_partkey |
| ==== |
| # TPCH-Q17 |
| # Q17 - Small-Quantity-Order Revenue Query |
| select |
| sum(l_extendedprice) / 7.0 as avg_yearly |
| from |
| lineitem, |
| part |
| where |
| p_partkey = l_partkey |
| and p_brand = 'Brand#23' |
| and p_container = 'MED BOX' |
| and l_quantity < ( |
| select |
| 0.2 * avg(l_quantity) |
| from |
| lineitem |
| where |
| l_partkey = p_partkey |
| ) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 06:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_extendedprice) |
| | |
| 05:HASH JOIN [RIGHT SEMI JOIN] |
| | hash predicates: l_partkey = tpch.part.p_partkey |
| | other join predicates: tpch.lineitem.l_quantity < 0.2 * avg(l_quantity) |
| | runtime filters: RF000 <- tpch.part.p_partkey |
| | |
| |--04:HASH JOIN [INNER JOIN] |
| | | hash predicates: tpch.lineitem.l_partkey = tpch.part.p_partkey |
| | | runtime filters: RF001 <- tpch.part.p_partkey |
| | | |
| | |--01:SCAN HDFS [tpch.part] |
| | | partitions=1/1 files=1 size=22.83MB |
| | | predicates: tpch.part.p_container = 'MED BOX', tpch.part.p_brand = 'Brand#23' |
| | | |
| | 00:SCAN HDFS [tpch.lineitem] |
| | partitions=1/1 files=1 size=718.94MB |
| | runtime filters: RF001 -> tpch.lineitem.l_partkey |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: avg(tpch.lineitem.l_quantity) |
| | group by: tpch.lineitem.l_partkey |
| | |
| 02:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| runtime filters: RF000 -> tpch.lineitem.l_partkey |
| ==== |
| # TPCH-Q18 |
| # Q18 - Large Value Customer Query |
| select |
| c_name, |
| c_custkey, |
| o_orderkey, |
| o_orderdate, |
| o_totalprice, |
| sum(l_quantity) |
| from |
| customer, |
| orders, |
| lineitem |
| where |
| o_orderkey in ( |
| select |
| l_orderkey |
| from |
| lineitem |
| group by |
| l_orderkey |
| having |
| sum(l_quantity) > 300 |
| ) |
| and c_custkey = o_custkey |
| and o_orderkey = l_orderkey |
| group by |
| c_name, |
| c_custkey, |
| o_orderkey, |
| o_orderdate, |
| o_totalprice |
| order by |
| o_totalprice desc, |
| o_orderdate |
| limit 100 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 09:TOP-N [LIMIT=100] |
| | order by: o_totalprice DESC, o_orderdate ASC |
| | |
| 08:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_quantity) |
| | group by: tpch.customer.c_name, tpch.customer.c_custkey, tpch.orders.o_orderkey, tpch.orders.o_orderdate, tpch.orders.o_totalprice |
| | |
| 07:HASH JOIN [LEFT SEMI JOIN] |
| | hash predicates: tpch.orders.o_orderkey = l_orderkey |
| | runtime filters: RF000 <- l_orderkey |
| | |
| |--04:AGGREGATE [FINALIZE] |
| | | output: sum(tpch.lineitem.l_quantity) |
| | | group by: tpch.lineitem.l_orderkey |
| | | having: sum(l_quantity) > 300 |
| | | |
| | 03:SCAN HDFS [tpch.lineitem] |
| | partitions=1/1 files=1 size=718.94MB |
| | |
| 06:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey |
| | runtime filters: RF001 <- tpch.customer.c_custkey |
| | |
| |--00:SCAN HDFS [tpch.customer] |
| | partitions=1/1 files=1 size=23.08MB |
| | |
| 05:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey |
| | runtime filters: RF002 <- tpch.orders.o_orderkey |
| | |
| |--01:SCAN HDFS [tpch.orders] |
| | partitions=1/1 files=1 size=162.56MB |
| | runtime filters: RF000 -> tpch.orders.o_orderkey, RF001 -> tpch.orders.o_custkey |
| | |
| 02:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| runtime filters: RF000 -> tpch.lineitem.l_orderkey, RF002 -> tpch.lineitem.l_orderkey |
| ==== |
| # TPCH-Q19 |
| # Q19 - Discounted Revenue Query |
| select |
| sum(l_extendedprice * (1 - l_discount)) as revenue |
| from |
| lineitem, |
| part |
| where |
| p_partkey = l_partkey |
| and ( |
| ( |
| p_brand = 'Brand#12' |
| and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') |
| and l_quantity >= 1 and l_quantity <= 11 |
| and p_size between 1 and 5 |
| and l_shipmode in ('AIR', 'AIR REG') |
| and l_shipinstruct = 'DELIVER IN PERSON' |
| ) |
| or |
| ( |
| p_brand = 'Brand#23' |
| and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') |
| and l_quantity >= 10 and l_quantity <= 20 |
| and p_size between 1 and 10 |
| and l_shipmode in ('AIR', 'AIR REG') |
| and l_shipinstruct = 'DELIVER IN PERSON' |
| ) |
| or |
| ( |
| p_brand = 'Brand#34' |
| and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') |
| and l_quantity >= 20 and l_quantity <= 30 |
| and p_size between 1 and 15 |
| and l_shipmode in ('AIR', 'AIR REG') |
| and l_shipinstruct = 'DELIVER IN PERSON' |
| ) |
| ) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_extendedprice * (1 - tpch.lineitem.l_discount)) |
| | |
| 02:HASH JOIN [INNER JOIN] |
| | hash predicates: tpch.lineitem.l_partkey = tpch.part.p_partkey |
| | other predicates: ((tpch.part.p_brand = 'Brand#12' AND tpch.part.p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') AND tpch.lineitem.l_quantity >= 1 AND tpch.lineitem.l_quantity <= 11 AND tpch.part.p_size <= 5) OR (tpch.part.p_brand = 'Brand#23' AND tpch.part.p_container IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') AND tpch.lineitem.l_quantity >= 10 AND tpch.lineitem.l_quantity <= 20 AND tpch.part.p_size <= 10) OR (tpch.part.p_brand = 'Brand#34' AND tpch.part.p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') AND tpch.lineitem.l_quantity >= 20 AND tpch.lineitem.l_quantity <= 30 AND tpch.part.p_size <= 15)) |
| | runtime filters: RF000 <- tpch.part.p_partkey |
| | |
| |--01:SCAN HDFS [tpch.part] |
| | partitions=1/1 files=1 size=22.83MB |
| | predicates: tpch.part.p_size >= 1 |
| | |
| 00:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| predicates: tpch.lineitem.l_shipmode IN ('AIR', 'AIR REG'), tpch.lineitem.l_shipinstruct = 'DELIVER IN PERSON' |
| runtime filters: RF000 -> tpch.lineitem.l_partkey |
| ==== |
| # TPCH-Q20 |
| # Q20 - Potential Part Promotion Query |
| select |
| s_name, |
| s_address |
| from |
| supplier, |
| nation |
| where |
| s_suppkey in ( |
| select |
| ps_suppkey |
| from |
| partsupp |
| where |
| ps_partkey in ( |
| select |
| p_partkey |
| from |
| part |
| where |
| p_name like 'forest%' |
| ) |
| and ps_availqty > ( |
| select |
| 0.5 * sum(l_quantity) |
| from |
| lineitem |
| where |
| l_partkey = ps_partkey |
| and l_suppkey = ps_suppkey |
| and l_shipdate >= '1994-01-01' |
| and l_shipdate < '1995-01-01' |
| ) |
| ) |
| and s_nationkey = n_nationkey |
| and n_name = 'CANADA' |
| order by |
| s_name |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 10:SORT |
| | order by: s_name ASC |
| | |
| 09:HASH JOIN [RIGHT SEMI JOIN] |
| | hash predicates: tpch.partsupp.ps_suppkey = tpch.supplier.s_suppkey |
| | runtime filters: RF000 <- tpch.supplier.s_suppkey |
| | |
| |--08:HASH JOIN [INNER JOIN] |
| | | hash predicates: tpch.supplier.s_nationkey = tpch.nation.n_nationkey |
| | | runtime filters: RF004 <- tpch.nation.n_nationkey |
| | | |
| | |--01:SCAN HDFS [tpch.nation] |
| | | partitions=1/1 files=1 size=2.15KB |
| | | predicates: tpch.nation.n_name = 'CANADA' |
| | | |
| | 00:SCAN HDFS [tpch.supplier] |
| | partitions=1/1 files=1 size=1.33MB |
| | runtime filters: RF004 -> tpch.supplier.s_nationkey |
| | |
| 07:HASH JOIN [RIGHT SEMI JOIN] |
| | hash predicates: l_partkey = tpch.partsupp.ps_partkey, l_suppkey = tpch.partsupp.ps_suppkey |
| | other join predicates: tpch.partsupp.ps_availqty > 0.5 * sum(l_quantity) |
| | runtime filters: RF001 <- tpch.partsupp.ps_partkey, RF002 <- tpch.partsupp.ps_suppkey |
| | |
| |--06:HASH JOIN [LEFT SEMI JOIN] |
| | | hash predicates: tpch.partsupp.ps_partkey = tpch.part.p_partkey |
| | | runtime filters: RF003 <- tpch.part.p_partkey |
| | | |
| | |--03:SCAN HDFS [tpch.part] |
| | | partitions=1/1 files=1 size=22.83MB |
| | | predicates: tpch.part.p_name LIKE 'forest%' |
| | | |
| | 02:SCAN HDFS [tpch.partsupp] |
| | partitions=1/1 files=1 size=112.71MB |
| | runtime filters: RF000 -> tpch.partsupp.ps_suppkey, RF003 -> tpch.partsupp.ps_partkey |
| | |
| 05:AGGREGATE [FINALIZE] |
| | output: sum(tpch.lineitem.l_quantity) |
| | group by: tpch.lineitem.l_partkey, tpch.lineitem.l_suppkey |
| | |
| 04:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| predicates: tpch.lineitem.l_shipdate < '1995-01-01', tpch.lineitem.l_shipdate >= '1994-01-01' |
| runtime filters: RF000 -> tpch.lineitem.l_suppkey, RF001 -> tpch.lineitem.l_partkey, RF002 -> tpch.lineitem.l_suppkey |
| ==== |
| # TPCH-Q21 |
| # Q21 - Suppliers Who Kept Orders Waiting Query |
| select |
| s_name, |
| count(*) as numwait |
| from |
| supplier, |
| lineitem l1, |
| orders, |
| tpch.nation |
| where |
| s_suppkey = l1.l_suppkey |
| and o_orderkey = l1.l_orderkey |
| and o_orderstatus = 'F' |
| and l1.l_receiptdate > l1.l_commitdate |
| and exists ( |
| select |
| * |
| from |
| lineitem l2 |
| where |
| l2.l_orderkey = l1.l_orderkey |
| and l2.l_suppkey <> l1.l_suppkey |
| ) |
| and not exists ( |
| select |
| * |
| from |
| lineitem l3 |
| where |
| l3.l_orderkey = l1.l_orderkey |
| and l3.l_suppkey <> l1.l_suppkey |
| and l3.l_receiptdate > l3.l_commitdate |
| ) |
| and s_nationkey = n_nationkey |
| and n_name = 'SAUDI ARABIA' |
| group by |
| s_name |
| order by |
| numwait desc, |
| s_name |
| limit 100 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 12:TOP-N [LIMIT=100] |
| | order by: count(*) DESC, s_name ASC |
| | |
| 11:AGGREGATE [FINALIZE] |
| | output: count(*) |
| | group by: tpch.supplier.s_name |
| | |
| 10:HASH JOIN [RIGHT ANTI JOIN] |
| | hash predicates: tpch.lineitem.l_orderkey = tpch.lineitem.l_orderkey |
| | other join predicates: tpch.lineitem.l_suppkey != tpch.lineitem.l_suppkey |
| | |
| |--09:HASH JOIN [RIGHT SEMI JOIN] |
| | | hash predicates: tpch.lineitem.l_orderkey = tpch.lineitem.l_orderkey |
| | | other join predicates: tpch.lineitem.l_suppkey != tpch.lineitem.l_suppkey |
| | | runtime filters: RF000 <- tpch.lineitem.l_orderkey |
| | | |
| | |--08:HASH JOIN [INNER JOIN] |
| | | | hash predicates: tpch.supplier.s_nationkey = n_nationkey |
| | | | runtime filters: RF001 <- n_nationkey |
| | | | |
| | | |--03:SCAN HDFS [tpch.nation] |
| | | | partitions=1/1 files=1 size=2.15KB |
| | | | predicates: n_name = 'SAUDI ARABIA' |
| | | | |
| | | 07:HASH JOIN [INNER JOIN] |
| | | | hash predicates: tpch.lineitem.l_suppkey = tpch.supplier.s_suppkey |
| | | | runtime filters: RF002 <- tpch.supplier.s_suppkey |
| | | | |
| | | |--00:SCAN HDFS [tpch.supplier] |
| | | | partitions=1/1 files=1 size=1.33MB |
| | | | runtime filters: RF001 -> tpch.supplier.s_nationkey |
| | | | |
| | | 06:HASH JOIN [INNER JOIN] |
| | | | hash predicates: tpch.lineitem.l_orderkey = tpch.orders.o_orderkey |
| | | | runtime filters: RF003 <- tpch.orders.o_orderkey |
| | | | |
| | | |--02:SCAN HDFS [tpch.orders] |
| | | | partitions=1/1 files=1 size=162.56MB |
| | | | predicates: tpch.orders.o_orderstatus = 'F' |
| | | | |
| | | 01:SCAN HDFS [tpch.lineitem] |
| | | partitions=1/1 files=1 size=718.94MB |
| | | predicates: tpch.lineitem.l_receiptdate > tpch.lineitem.l_commitdate |
| | | runtime filters: RF002 -> tpch.lineitem.l_suppkey, RF003 -> tpch.lineitem.l_orderkey |
| | | |
| | 04:SCAN HDFS [tpch.lineitem] |
| | partitions=1/1 files=1 size=718.94MB |
| | runtime filters: RF000 -> tpch.lineitem.l_orderkey |
| | |
| 05:SCAN HDFS [tpch.lineitem] |
| partitions=1/1 files=1 size=718.94MB |
| predicates: tpch.lineitem.l_receiptdate > tpch.lineitem.l_commitdate |
| ==== |
| # TPCH-Q22 |
| # Q22 - Global Sales Opportunity Query |
| select |
| cntrycode, |
| count(*) as numcust, |
| sum(c_acctbal) as totacctbal |
| from ( |
| select |
| substr(c_phone, 1, 2) as cntrycode, |
| c_acctbal |
| from |
| customer |
| where |
| substr(c_phone, 1, 2) in ('13', '31', '23', '29', '30', '18', '17') |
| and c_acctbal > ( |
| select |
| avg(c_acctbal) |
| from |
| customer |
| where |
| c_acctbal > 0.00 |
| and substr(c_phone, 1, 2) in ('13', '31', '23', '29', '30', '18', '17') |
| ) |
| and not exists ( |
| select |
| * |
| from |
| orders |
| where |
| o_custkey = c_custkey |
| ) |
| ) as custsale |
| group by |
| cntrycode |
| order by |
| cntrycode |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 07:SORT |
| | order by: cntrycode ASC |
| | |
| 06:AGGREGATE [FINALIZE] |
| | output: count(*), sum(tpch.customer.c_acctbal) |
| | group by: substr(tpch.customer.c_phone, 1, 2) |
| | |
| 05:HASH JOIN [RIGHT ANTI JOIN] |
| | hash predicates: tpch.orders.o_custkey = tpch.customer.c_custkey |
| | |
| |--04:NESTED LOOP JOIN [INNER JOIN] |
| | | predicates: tpch.customer.c_acctbal > avg(c_acctbal) |
| | | |
| | |--02:AGGREGATE [FINALIZE] |
| | | | output: avg(tpch.customer.c_acctbal) |
| | | | |
| | | 01:SCAN HDFS [tpch.customer] |
| | | partitions=1/1 files=1 size=23.08MB |
| | | predicates: tpch.customer.c_acctbal > 0.00, substr(tpch.customer.c_phone, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17') |
| | | |
| | 00:SCAN HDFS [tpch.customer] |
| | partitions=1/1 files=1 size=23.08MB |
| | predicates: substr(tpch.customer.c_phone, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17') |
| | |
| 03:SCAN HDFS [tpch.orders] |
| partitions=1/1 files=1 size=162.56MB |
| ==== |