Skip to content

TPC-DS Q39 — Inventory Variance Monthly

TPC-DS benchmark · all TPC-DS queries

Compares inventory variance (coefficient of variation) across consecutive months

Representative SQL

Rendered for DataFusion with default parameters.

WITH inv AS (
SELECT
w_warehouse_name,
w_warehouse_sk,
i_item_sk,
d_moy,
stdev,
mean,
CASE mean WHEN 0 THEN NULL ELSE stdev / mean END AS cov
FROM (
SELECT
w_warehouse_name,
w_warehouse_sk,
i_item_sk,
d_moy,
STDDEV_SAMP(inv_quantity_on_hand) AS stdev,
AVG(inv_quantity_on_hand) AS mean
FROM inventory, item, warehouse, date_dim
WHERE
inv_item_sk = i_item_sk
AND inv_warehouse_sk = w_warehouse_sk
AND inv_date_sk = d_date_sk
AND d_year = 1998
GROUP BY
w_warehouse_name,
w_warehouse_sk,
i_item_sk,
d_moy
) AS foo
WHERE
CASE mean WHEN 0 THEN 0 ELSE stdev / mean END > 1
)
SELECT
inv1.w_warehouse_sk,
inv1.i_item_sk,
inv1.d_moy,
inv1.mean,
inv1.cov,
inv2.w_warehouse_sk,
inv2.i_item_sk,
inv2.d_moy,
inv2.mean,
inv2.cov
FROM inv AS inv1, inv AS inv2
WHERE
inv1.i_item_sk = inv2.i_item_sk
AND inv1.w_warehouse_sk = inv2.w_warehouse_sk
AND inv1.d_moy = 4
AND inv2.d_moy = 4 + 1
ORDER BY
inv1.w_warehouse_sk,
inv1.i_item_sk,
inv1.d_moy,
inv1.mean,
inv1.cov,
inv2.d_moy,
inv2.mean,
inv2.cov

Representative DataFrame

Expression family (Polars, PySpark, DataFusion), default parameters.

def q39_expression_impl(ctx: DataFrameContext) -> Any:
return _q39_expression(ctx, first_month_min_cov=None)

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

Parameter substitution for this benchmark is seed-driven; pass a seed for a specific stream’s parameters:

print(bench.get_query(39, scale_factor=1.0, seed=42, dialect="datafusion"))

For the DataFrame form:

from benchbox.core.query_catalog import get_dataframe_render
print(get_dataframe_render('tpcds', '39', family="expression").source) # or family="pandas"

Source

Query text: _sources/tpc-ds/query_templates/query39.tpl