72 lines
2.2 KiB
SQL
72 lines
2.2 KiB
SQL
WITH ss_items AS
|
|
(SELECT i_item_id item_id,
|
|
sum(ss_ext_sales_price) ss_item_rev
|
|
FROM store_sales,
|
|
item,
|
|
date_dim
|
|
WHERE ss_item_sk = i_item_sk
|
|
AND d_date IN
|
|
(SELECT d_date
|
|
FROM date_dim
|
|
WHERE d_week_seq =
|
|
(SELECT d_week_seq
|
|
FROM date_dim
|
|
WHERE d_date = '2000-01-03'))
|
|
AND ss_sold_date_sk = d_date_sk
|
|
GROUP BY i_item_id),
|
|
cs_items AS
|
|
(SELECT i_item_id item_id,
|
|
sum(cs_ext_sales_price) cs_item_rev
|
|
FROM catalog_sales,
|
|
item,
|
|
date_dim
|
|
WHERE cs_item_sk = i_item_sk
|
|
AND d_date IN
|
|
(SELECT d_date
|
|
FROM date_dim
|
|
WHERE d_week_seq =
|
|
(SELECT d_week_seq
|
|
FROM date_dim
|
|
WHERE d_date = '2000-01-03'))
|
|
AND cs_sold_date_sk = d_date_sk
|
|
GROUP BY i_item_id),
|
|
ws_items AS
|
|
(SELECT i_item_id item_id,
|
|
sum(ws_ext_sales_price) ws_item_rev
|
|
FROM web_sales,
|
|
item,
|
|
date_dim
|
|
WHERE ws_item_sk = i_item_sk
|
|
AND d_date IN
|
|
(SELECT d_date
|
|
FROM date_dim
|
|
WHERE d_week_seq =
|
|
(SELECT d_week_seq
|
|
FROM date_dim
|
|
WHERE d_date = '2000-01-03'))
|
|
AND ws_sold_date_sk = d_date_sk
|
|
GROUP BY i_item_id)
|
|
SELECT ss_items.item_id,
|
|
ss_item_rev,
|
|
ss_item_rev/((ss_item_rev+cs_item_rev+ws_item_rev)/3) * 100 ss_dev,
|
|
cs_item_rev,
|
|
cs_item_rev/((ss_item_rev+cs_item_rev+ws_item_rev)/3) * 100 cs_dev,
|
|
ws_item_rev,
|
|
ws_item_rev/((ss_item_rev+cs_item_rev+ws_item_rev)/3) * 100 ws_dev,
|
|
(ss_item_rev+cs_item_rev+ws_item_rev)/3 average
|
|
FROM ss_items,
|
|
cs_items,
|
|
ws_items
|
|
WHERE 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_rev
|
|
ORDER BY ss_items.item_id NULLS FIRST,
|
|
ss_item_rev NULLS FIRST
|
|
LIMIT 100;
|
|
|