TPC-DS-OBT Q78
TPC-DS-OBT benchmark · all TPC-DS-OBT queries
Representative SQL
Rendered for DataFusion with default parameters.
WITH ws AS ( SELECT obt.sold_date_d_year AS ws_sold_year, obt.item_sk, obt.bill_customer_sk AS ws_customer_sk, SUM(obt.quantity) AS ws_qty, SUM(obt.wholesale_cost) AS ws_wc, SUM(obt.sales_price) AS ws_sp FROM tpcds_sales_returns_obt AS obt WHERE ( ( obt.sale_id IS NULL AND ( obt.sale_id = obt.sale_id AND obt.item_sk = obt.item_sk ) ) AND obt.sold_date_sk = obt.sold_date_d_date_sk ) AND channel = 'web' GROUP BY obt.sold_date_d_year, obt.item_sk, obt.bill_customer_sk), cs AS ( SELECT obt.sold_date_d_year AS cs_sold_year, obt.item_sk, obt.bill_customer_sk AS cs_customer_sk, SUM(obt.quantity) AS cs_qty, SUM(obt.wholesale_cost) AS cs_wc, SUM(obt.sales_price) AS cs_sp FROM tpcds_sales_returns_obt AS obt WHERE ( ( obt.sale_id IS NULL AND ( obt.sale_id = obt.sale_id AND obt.item_sk = obt.item_sk ) ) AND obt.sold_date_sk = obt.sold_date_d_date_sk ) AND channel = 'catalog' GROUP BY obt.sold_date_d_year, obt.item_sk, obt.bill_customer_sk), ss AS ( SELECT obt.sold_date_d_year AS ss_sold_year, obt.item_sk, obt.ship_customer_sk, SUM(obt.quantity) AS ss_qty, SUM(obt.wholesale_cost) AS ss_wc, SUM(obt.sales_price) AS ss_sp FROM tpcds_sales_returns_obt AS obt WHERE ( ( obt.sale_id IS NULL AND ( obt.sale_id = obt.sale_id AND obt.item_sk = obt.item_sk ) ) AND obt.sold_date_sk = obt.sold_date_d_date_sk ) AND channel = 'store' GROUP BY obt.sold_date_d_year, obt.item_sk, obt.ship_customer_sk)SELECT ss_sold_year, ROUND( CAST(ss_qty AS DOUBLE PRECISION) / ( COALESCE(ws_qty, 0) + COALESCE(cs_qty, 0) ), 2 ) AS ratio, ss_qty AS store_qty, ss_wc AS store_wholesale_cost, ss_sp AS store_sales_price, COALESCE(ws_qty, 0) + COALESCE(cs_qty, 0) AS other_chan_qty, COALESCE(ws_wc, 0) + COALESCE(cs_wc, 0) AS other_chan_wholesale_cost, COALESCE(ws_sp, 0) + COALESCE(cs_sp, 0) AS other_chan_sales_priceFROM ssLEFT JOIN ws ON ( ws_sold_year = ss_sold_year AND ws.item_sk = ss.item_sk AND ws_customer_sk = ship_customer_sk )LEFT JOIN cs ON ( cs_sold_year = ss_sold_year AND ss.item_sk = cs.item_sk AND cs_customer_sk = ship_customer_sk )WHERE ( ( ( COALESCE(ws_qty, 0) > 0 OR COALESCE(cs_qty, 0) > 0 ) AND ss_sold_year = 1998 ) AND ( ws_sold_year = ss_sold_year AND ws.item_sk = ss.item_sk AND ws_customer_sk = ship_customer_sk ) ) AND ( cs_sold_year = ss_sold_year AND ss.item_sk = cs.item_sk AND cs_customer_sk = ship_customer_sk )ORDER BY ss_sold_year, ss_qty DESC, ss_wc DESC, ss_sp DESC, other_chan_qty, other_chan_wholesale_cost, other_chan_sales_price, ratioLIMIT 100Representative 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 TPCDSOBT
bench = TPCDSOBT(scale_factor=1.0) # your scale factorqueries = bench.get_queries(dialect="datafusion") # your platform's dialect; drop dialect= for native SQLprint(queries['78'])Source
Query text: benchbox/core/tpcds_obt/queries.py