| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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
|