blob: 7f4d6adb1c5abb75580fd6eb325427f3584755a6 [file] [log] [blame]
WITH web_v1 AS (
SELECT
ws_item_sk item_sk,
d_date,
sum(sum(ws_sales_price))
OVER (PARTITION BY ws_item_sk
ORDER BY d_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) cume_sales
FROM web_sales, date_dim
WHERE ws_sold_date_sk = d_date_sk
AND d_month_seq BETWEEN 1200 AND 1200 + 11
AND ws_item_sk IS NOT NULL
GROUP BY ws_item_sk, d_date),
store_v1 AS (
SELECT
ss_item_sk item_sk,
d_date,
sum(sum(ss_sales_price))
OVER (PARTITION BY ss_item_sk
ORDER BY d_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) cume_sales
FROM store_sales, date_dim
WHERE ss_sold_date_sk = d_date_sk
AND d_month_seq BETWEEN 1200 AND 1200 + 11
AND ss_item_sk IS NOT NULL
GROUP BY ss_item_sk, d_date)
SELECT *
FROM (SELECT
item_sk,
d_date,
web_sales,
store_sales,
max(web_sales)
OVER (PARTITION BY item_sk
ORDER BY d_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) web_cumulative,
max(store_sales)
OVER (PARTITION BY item_sk
ORDER BY d_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) store_cumulative
FROM (SELECT
CASE WHEN web.item_sk IS NOT NULL
THEN web.item_sk
ELSE store.item_sk END item_sk,
CASE WHEN web.d_date IS NOT NULL
THEN web.d_date
ELSE store.d_date END d_date,
web.cume_sales web_sales,
store.cume_sales store_sales
FROM web_v1 web FULL OUTER JOIN store_v1 store ON (web.item_sk = store.item_sk
AND web.d_date = store.d_date)
) x) y
WHERE web_cumulative > store_cumulative
--ORDER BY item_sk, d_date
--LIMIT 100