TPC-DS-OBT Q58
TPC-DS-OBT benchmark · all TPC-DS-OBT queries
Representative SQL
Rendered for DataFusion with default parameters.
WITH ss_items AS ( SELECT obt.item_i_item_id AS item_id, SUM(obt.ext_sales_price) AS ss_item_rev FROM tpcds_sales_returns_obt AS obt WHERE ( obt.item_sk = obt.item_i_item_sk AND obt.sold_date_d_date IN ( SELECT obt.sold_date_d_date FROM tpcds_sales_returns_obt AS obt WHERE obt.sold_date_d_week_seq = ( SELECT MAX(obt.sold_date_d_week_seq) FROM tpcds_sales_returns_obt AS obt WHERE obt.sold_date_d_date = '1998-01-01' AND channel IN ('catalog', 'store', 'web') ) AND channel IN ('catalog', 'store', 'web') ) AND obt.sold_date_sk = obt.sold_date_d_date_sk ) AND channel = 'store' GROUP BY obt.item_i_item_id), cs_items AS ( SELECT obt.item_i_item_id AS item_id, SUM(obt.ext_sales_price) AS cs_item_rev FROM tpcds_sales_returns_obt AS obt WHERE ( obt.item_sk = obt.item_i_item_sk AND obt.sold_date_d_date IN ( SELECT obt.sold_date_d_date FROM tpcds_sales_returns_obt AS obt WHERE obt.sold_date_d_week_seq = ( SELECT MAX(obt.sold_date_d_week_seq) FROM tpcds_sales_returns_obt AS obt WHERE obt.sold_date_d_date = '1998-01-01' AND channel IN ('catalog', 'store', 'web') ) AND channel IN ('catalog', 'store', 'web') ) AND obt.sold_date_sk = obt.sold_date_d_date_sk ) AND channel = 'catalog' GROUP BY obt.item_i_item_id), ws_items AS ( SELECT obt.item_i_item_id AS item_id, SUM(obt.ext_sales_price) AS ws_item_rev FROM tpcds_sales_returns_obt AS obt WHERE ( obt.item_sk = obt.item_i_item_sk AND obt.sold_date_d_date IN ( SELECT obt.sold_date_d_date FROM tpcds_sales_returns_obt AS obt WHERE obt.sold_date_d_week_seq = ( SELECT MAX(obt.sold_date_d_week_seq) FROM tpcds_sales_returns_obt AS obt WHERE obt.sold_date_d_date = '1998-01-01' AND channel IN ('catalog', 'store', 'web') ) AND channel IN ('catalog', 'store', 'web') ) AND obt.sold_date_sk = obt.sold_date_d_date_sk ) AND channel = 'web' GROUP BY obt.item_i_item_id)SELECT ss_items.item_id, ss_item_rev, CAST(ss_item_rev AS DOUBLE PRECISION) / ( CAST(( ss_item_rev + cs_item_rev + ws_item_rev ) AS DOUBLE PRECISION) / 3 ) * 100 AS ss_dev, cs_item_rev, CAST(cs_item_rev AS DOUBLE PRECISION) / ( CAST(( ss_item_rev + cs_item_rev + ws_item_rev ) AS DOUBLE PRECISION) / 3 ) * 100 AS cs_dev, ws_item_rev, CAST(ws_item_rev AS DOUBLE PRECISION) / ( CAST(( ss_item_rev + cs_item_rev + ws_item_rev ) AS DOUBLE PRECISION) / 3 ) * 100 AS ws_dev, CAST(( ss_item_rev + cs_item_rev + ws_item_rev ) AS DOUBLE PRECISION) / 3 AS averageFROM ss_items, cs_items, ws_itemsWHERE ss_items.item_id = cs_items.item_id AND ss_items.item_id = ws_items.item_id AND ss_item_rev BETWEEN 0.9 * cs_item_rev AND 1.1 * cs_item_rev AND ss_item_rev BETWEEN 0.9 * ws_item_rev AND 1.1 * ws_item_rev AND cs_item_rev BETWEEN 0.9 * ss_item_rev AND 1.1 * ss_item_rev AND cs_item_rev BETWEEN 0.9 * ws_item_rev AND 1.1 * ws_item_rev AND ws_item_rev BETWEEN 0.9 * ss_item_rev AND 1.1 * ss_item_rev AND ws_item_rev BETWEEN 0.9 * cs_item_rev AND 1.1 * cs_item_revORDER BY ss_items.item_id, ss_item_revLIMIT 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['58'])Source
Query text: benchbox/core/tpcds_obt/queries.py