57 lines
1.7 KiB
SQL
57 lines
1.7 KiB
SQL
SELECT channel,
|
|
col_name,
|
|
d_year,
|
|
d_qoy,
|
|
i_category,
|
|
COUNT(*) sales_cnt,
|
|
SUM(ext_sales_price) sales_amt
|
|
FROM
|
|
( SELECT 'store' AS channel,
|
|
'ss_store_sk' col_name,
|
|
d_year,
|
|
d_qoy,
|
|
i_category,
|
|
ss_ext_sales_price ext_sales_price
|
|
FROM store_sales,
|
|
item,
|
|
date_dim
|
|
WHERE ss_store_sk IS NULL
|
|
AND ss_sold_date_sk=d_date_sk
|
|
AND ss_item_sk=i_item_sk
|
|
UNION ALL SELECT 'web' AS channel,
|
|
'ws_ship_customer_sk' col_name,
|
|
d_year,
|
|
d_qoy,
|
|
i_category,
|
|
ws_ext_sales_price ext_sales_price
|
|
FROM web_sales,
|
|
item,
|
|
date_dim
|
|
WHERE ws_ship_customer_sk IS NULL
|
|
AND ws_sold_date_sk=d_date_sk
|
|
AND ws_item_sk=i_item_sk
|
|
UNION ALL SELECT 'catalog' AS channel,
|
|
'cs_ship_addr_sk' col_name,
|
|
d_year,
|
|
d_qoy,
|
|
i_category,
|
|
cs_ext_sales_price ext_sales_price
|
|
FROM catalog_sales,
|
|
item,
|
|
date_dim
|
|
WHERE cs_ship_addr_sk IS NULL
|
|
AND cs_sold_date_sk=d_date_sk
|
|
AND cs_item_sk=i_item_sk) foo
|
|
GROUP BY channel,
|
|
col_name,
|
|
d_year,
|
|
d_qoy,
|
|
i_category
|
|
ORDER BY channel NULLS FIRST,
|
|
col_name NULLS FIRST,
|
|
d_year NULLS FIRST,
|
|
d_qoy NULLS FIRST,
|
|
i_category NULLS FIRST
|
|
LIMIT 100;
|
|
|