Skip to content

TPC-DS-OBT Q97

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

Representative SQL

Rendered for DataFusion with default parameters.

WITH ssci AS (
SELECT
obt.ship_customer_sk AS customer_sk,
obt.item_sk AS item_sk
FROM tpcds_sales_returns_obt AS obt
WHERE
(
obt.sold_date_sk = obt.sold_date_d_date_sk
AND obt.sold_date_d_month_seq BETWEEN 1176 AND 1176 + 11
)
AND channel = 'store'
GROUP BY
obt.ship_customer_sk,
obt.item_sk
), csci AS (
SELECT
obt.bill_customer_sk AS customer_sk,
obt.item_sk AS item_sk
FROM tpcds_sales_returns_obt AS obt
WHERE
(
obt.sold_date_sk = obt.sold_date_d_date_sk
AND obt.sold_date_d_month_seq BETWEEN 1176 AND 1176 + 11
)
AND channel = 'catalog'
GROUP BY
obt.bill_customer_sk,
obt.item_sk
)
SELECT
SUM(
CASE
WHEN NOT ssci.customer_sk IS NULL AND csci.customer_sk IS NULL
THEN 1
ELSE 0
END
) AS store_only,
SUM(
CASE
WHEN ssci.customer_sk IS NULL AND NOT csci.customer_sk IS NULL
THEN 1
ELSE 0
END
) AS catalog_only,
SUM(
CASE
WHEN NOT ssci.customer_sk IS NULL AND NOT csci.customer_sk IS NULL
THEN 1
ELSE 0
END
) AS store_and_catalog
FROM ssci
FULL OUTER JOIN csci
ON (
ssci.customer_sk = csci.customer_sk AND ssci.item_sk = csci.item_sk
)
WHERE
(
ssci.customer_sk = csci.customer_sk AND ssci.item_sk = csci.item_sk
)
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['97'])

Source

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