Skip to content

TPC-DS-OBT Q75

TPC-DS-OBT benchmark · all TPC-DS-OBT queries

Representative SQL

Rendered for DataFusion with default parameters.

WITH all_sales AS (
SELECT
sold_date_d_year AS d_year,
item_i_brand_id AS i_brand_id,
item_i_class_id AS i_class_id,
item_i_category_id AS i_category_id,
item_i_manufact_id AS i_manufact_id,
SUM(sales_cnt) AS sales_cnt,
SUM(sales_amt) AS sales_amt
FROM (
SELECT
obt.sold_date_d_year,
obt.item_i_brand_id,
obt.item_i_class_id,
obt.item_i_category_id,
obt.item_i_manufact_id,
obt.quantity - COALESCE(obt.return_quantity, 0) AS sales_cnt,
obt.ext_sales_price - COALESCE(obt.return_amount, 0.0) AS sales_amt
FROM tpcds_sales_returns_obt AS obt
WHERE
(
(
(
obt.item_i_category = '0' AND obt.item_i_item_sk = obt.item_sk
)
AND obt.sold_date_d_date_sk = obt.sold_date_sk
)
AND (
obt.sale_id = obt.sale_id AND obt.item_sk = obt.item_sk
)
)
AND channel = 'catalog'
UNION
SELECT
obt.sold_date_d_year,
obt.item_i_brand_id,
obt.item_i_class_id,
obt.item_i_category_id,
obt.item_i_manufact_id,
obt.quantity - COALESCE(obt.return_quantity, 0) AS sales_cnt,
obt.ext_sales_price - COALESCE(obt.return_amount, 0.0) AS sales_amt
FROM tpcds_sales_returns_obt AS obt
WHERE
(
(
(
obt.item_i_category = '0' AND obt.item_i_item_sk = obt.item_sk
)
AND obt.sold_date_d_date_sk = obt.sold_date_sk
)
AND (
obt.sale_id = obt.sale_id AND obt.item_sk = obt.item_sk
)
)
AND channel = 'store'
UNION
SELECT
obt.sold_date_d_year,
obt.item_i_brand_id,
obt.item_i_class_id,
obt.item_i_category_id,
obt.item_i_manufact_id,
obt.quantity - COALESCE(obt.return_quantity, 0) AS sales_cnt,
obt.ext_sales_price - COALESCE(obt.return_amount, 0.0) AS sales_amt
FROM tpcds_sales_returns_obt AS obt
WHERE
(
(
(
obt.item_i_category = '0' AND obt.item_i_item_sk = obt.item_sk
)
AND obt.sold_date_d_date_sk = obt.sold_date_sk
)
AND (
obt.sale_id = obt.sale_id AND obt.item_sk = obt.item_sk
)
)
AND channel = 'web'
) AS sales_detail
GROUP BY
d_year,
i_brand_id,
i_class_id,
i_category_id,
i_manufact_id
)
SELECT
prev_yr.d_year AS prev_year,
curr_yr.d_year AS year,
curr_yr.i_brand_id,
curr_yr.i_class_id,
curr_yr.i_category_id,
curr_yr.i_manufact_id,
prev_yr.sales_cnt AS prev_yr_cnt,
curr_yr.sales_cnt AS curr_yr_cnt,
curr_yr.sales_cnt - prev_yr.sales_cnt AS sales_cnt_diff,
curr_yr.sales_amt - prev_yr.sales_amt AS sales_amt_diff
FROM all_sales AS curr_yr, all_sales AS prev_yr
WHERE
curr_yr.i_brand_id = prev_yr.i_brand_id
AND curr_yr.i_class_id = prev_yr.i_class_id
AND curr_yr.i_category_id = prev_yr.i_category_id
AND curr_yr.i_manufact_id = prev_yr.i_manufact_id
AND curr_yr.d_year = 1999
AND prev_yr.d_year = 1999 - 1
AND CAST(curr_yr.sales_cnt AS DECIMAL(17, 2)) / CAST(prev_yr.sales_cnt AS DECIMAL(17, 2)) < 0.9
ORDER BY
sales_cnt_diff,
sales_amt_diff
LIMIT 100

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 TPCDSOBT
bench = TPCDSOBT(scale_factor=1.0) # your scale factor
queries = bench.get_queries(dialect="datafusion") # your platform's dialect; drop dialect= for native SQL
print(queries['75'])

Source

Query text: benchbox/core/tpcds_obt/queries.py