| WITH frequent_ss_items AS |
| (SELECT |
| substr(i_item_desc, 1, 30) itemdesc, |
| i_item_sk item_sk, |
| d_date solddate, |
| count(*) cnt |
| FROM store_sales, date_dim, item |
| WHERE ss_sold_date_sk = d_date_sk |
| AND ss_item_sk = i_item_sk |
| AND d_year IN (2000, 2000 + 1, 2000 + 2, 2000 + 3) |
| GROUP BY substr(i_item_desc, 1, 30), i_item_sk, d_date |
| HAVING count(*) > 4), |
| max_store_sales AS |
| (SELECT max(csales) tpcds_cmax |
| FROM (SELECT |
| c_customer_sk, |
| sum(ss_quantity * ss_sales_price) csales |
| FROM store_sales, customer, date_dim |
| WHERE ss_customer_sk = c_customer_sk |
| AND ss_sold_date_sk = d_date_sk |
| AND d_year IN (2000, 2000 + 1, 2000 + 2, 2000 + 3) |
| GROUP BY c_customer_sk) x), |
| best_ss_customer AS |
| (SELECT |
| c_customer_sk, |
| sum(ss_quantity * ss_sales_price) ssales |
| FROM store_sales, customer |
| WHERE ss_customer_sk = c_customer_sk |
| GROUP BY c_customer_sk |
| HAVING sum(ss_quantity * ss_sales_price) > (50 / 100.0) * |
| (SELECT * |
| FROM max_store_sales)) |
| SELECT sum(sales) |
| FROM ((SELECT cs_quantity * cs_list_price sales |
| FROM catalog_sales, date_dim |
| WHERE d_year = 2000 |
| AND d_moy = 2 |
| AND cs_sold_date_sk = d_date_sk |
| AND cs_item_sk IN (SELECT item_sk |
| FROM frequent_ss_items) |
| AND cs_bill_customer_sk IN (SELECT c_customer_sk |
| FROM best_ss_customer)) |
| UNION ALL |
| (SELECT ws_quantity * ws_list_price sales |
| FROM web_sales, date_dim |
| WHERE d_year = 2000 |
| AND d_moy = 2 |
| AND ws_sold_date_sk = d_date_sk |
| AND ws_item_sk IN (SELECT item_sk |
| FROM frequent_ss_items) |
| AND ws_bill_customer_sk IN (SELECT c_customer_sk |
| FROM best_ss_customer))) y |
| --LIMIT 100 |