You are a database expert and SQL optimizer. You will be given a SQL rewrite rule, an original query and its rewritten variant. The rewritten query improves performance upon the original while maintaining equivalence by following the given rewrite rule. Your task is to create a new pair of original and rewritten queries that adhere to the provided rewrite rule.

[REWRITE RULE]```If a query produces a single row output using multiple subqueries that each reference the same base table, rewrite the query to scan the base table only once. Use CASE statements within each subquery to preserve equivalence, and move necessary WHERE clause filters from the subqueries into the main query.```

[ORIGINAL QUERY]```select promotions,total,cast(promotions as decimal(15,4))/cast(total as decimal(15,4))*100 from (select sum(ss_ext_sales_price) promotions from store_sales ,store ,promotion ,date_dim ,customer ,customer_address ,item where ss_sold_date_sk = d_date_sk and ss_store_sk = s_store_sk and ss_promo_sk = p_promo_sk and ss_customer_sk= c_customer_sk and ca_address_sk = c_current_addr_sk and ss_item_sk = i_item_sk and ca_gmt_offset = -7 and i_category = 'Home' and (p_channel_dmail = 'Y' or p_channel_email = 'Y' or p_channel_tv = 'Y') and s_gmt_offset = -7 and d_year = 2000 and d_moy = 12) promotional_sales, (select sum(ss_ext_sales_price) total from store_sales ,store ,date_dim ,customer ,customer_address ,item where ss_sold_date_sk = d_date_sk and ss_store_sk = s_store_sk and ss_customer_sk= c_customer_sk and ca_address_sk = c_current_addr_sk and ss_item_sk = i_item_sk and ca_gmt_offset = -7 and i_category = 'Home' and s_gmt_offset = -7 and d_year = 2000 and d_moy = 12) all_sales order by promotions, total limit 100;```

[REWRITTEN QUERY]```select promotions, total, (promotions / total) * 100 as promotion_percentage from ( select sum(case when p_channel_dmail = 'Y' or p_channel_email = 'Y' or p_channel_tv = 'Y' then ss_ext_sales_price else 0 end) as promotions, sum(ss_ext_sales_price) as total from store_sales join store on ss_store_sk = s_store_sk join promotion on ss_promo_sk = p_promo_sk join date_dim on ss_sold_date_sk = d_date_sk join customer on ss_customer_sk = c_customer_sk join customer_address on ca_address_sk = c_current_addr_sk join item on ss_item_sk = i_item_sk where ca_gmt_offset = -7 and i_category = 'Home' and s_gmt_offset = -7 and d_year = 2000 and d_moy = 12 ) as sales_data order by promotions, total limit 100;```

Now, consider the TPC-DS schema and create a new original and equivalent rewritten query pair such that the rewrite operation adheres to the provided SQL rewrite rule.Keep the following points in mind while creating the new query pair:
1. The original query must make use of the following fact tables: ['web_sales', 'store_returns', 'catalog_sales']. Below is the join graph for these fact tables:
    ['web_sales(ws_bill_cdemo_sk) references customer_demographics(cd_demo_sk);', 'web_sales(ws_ship_mode_sk) references ship_mode(sm_ship_mode_sk);', 'web_sales(ws_ship_hdemo_sk) references household_demographics(hd_demo_sk);']
    ['store_returns(sr_item_sk) references item(i_item_sk);', 'store_returns(sr_store_sk) references store(s_store_sk);', 'store_returns(sr_customer_sk) references customer(c_customer_sk);']
    ['catalog_sales(cs_bill_hdemo_sk) references household_demographics(hd_demo_sk);', 'catalog_sales(cs_sold_time_sk) references time_dim(t_time_sk);', 'catalog_sales(cs_ship_cdemo_sk) references customer_demographics(cd_demo_sk);']
5. The original query must employ 2 joins.
6. The original query must employ the following aggregate functions: ['max', 'sum', 'avg'].
7. The original query must employ the following operators in its WHERE clause: ['avg'].
8. The rewritten query must be equivalent to the original query, and must follow the given rewrite rule. Enclose the original and rewritten queries within ``` and ```.