Skip to content

TPC-Havoc Q5_v10

TPC-Havoc benchmark · all TPC-Havoc queries

Representative SQL

Rendered for DataFusion with default parameters.

SELECT
CASE
WHEN n_name = 'CHINA'
THEN 'CHINA'
WHEN n_name = 'INDIA'
THEN 'INDIA'
WHEN n_name = 'JAPAN'
THEN 'JAPAN'
WHEN n_name = 'INDONESIA'
THEN 'INDONESIA'
WHEN n_name = 'VIETNAM'
THEN 'VIETNAM'
ELSE n_name
END AS n_name,
SUM(
CASE
WHEN l_discount BETWEEN 0.05 AND 0.07
THEN l_extendedprice * (
1 - l_discount
) * 1.0
WHEN l_discount < 0.05
THEN l_extendedprice * (
1 - l_discount
) * 1.0
WHEN l_discount > 0.07
THEN l_extendedprice * (
1 - l_discount
) * 1.0
ELSE l_extendedprice * (
1 - l_discount
)
END
) 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 CASE WHEN c_nationkey = s_nationkey THEN c_nationkey ELSE NULL END = s_nationkey
AND s_nationkey = n_nationkey
AND n_regionkey = r_regionkey
AND CASE WHEN r_name = 'ASIA' THEN r_name ELSE NULL END = 'ASIA'
AND CASE WHEN o_orderdate >= CAST('1994-01-01' AS DATE) THEN 1 ELSE 0 END = 1
AND CASE
WHEN o_orderdate < CAST('1994-01-01' AS DATE) + INTERVAL '1 YEAR'
THEN 1
ELSE 0
END = 1
GROUP BY
n_name
ORDER BY
revenue DESC

Representative DataFrame

No DataFrame implementation is registered for this query.

Get the exact query for your run

The blocks above are representative. To get the precise statement a specific platform runs at a specific scale, substitute your own values:

from benchbox import TPCHavoc
bench = TPCHavoc(scale_factor=0.01) # your scale factor
queries = bench.get_queries(dialect="datafusion") # your platform's dialect; drop dialect= for native SQL
print(queries['5_v10'])

Source

Query text: benchbox/core/tpchavoc/variant_sets/q05.py