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

[ORIGINAL QUERY]```select i_item_id ,i_item_desc ,i_category ,i_class ,i_current_price ,sum(ws_ext_sales_price) as itemrevenue ,sum(ws_ext_sales_price)*100/sum(sum(ws_ext_sales_price)) over (partition by i_class) as revenueratio from   web_sales  ,item  ,date_dim where  ws_item_sk = i_item_sk  and i_category in ('Men', 'Books', 'Electronics')  and ws_sold_date_sk = d_date_sk  and d_date between cast('2001-06-15' as date)     and (cast('2001-06-15' as date) + interval '30' day) group by  i_item_id ,i_item_desc ,i_category ,i_class ,i_current_price order by  i_category ,i_class ,i_item_id ,i_item_desc ,revenueratio limit 100;```

[REWRITTEN QUERY]```with cte as (select * from web_sales where ws_item_sk in (select i_item_sk from item where i_category in ('Men', 'Books', 'Electronics')) and ws_sold_date_sk in (select d_date_sk from date_dim where d_date between cast('2001-06-15' as date) and (cast('2001-06-15' as date) + interval '30' day))) select i_item_id ,i_item_desc ,i_category ,i_class ,i_current_price ,sum(ws_ext_sales_price) as itemrevenue ,sum(ws_ext_sales_price)*100/sum(sum(ws_ext_sales_price)) over (partition by i_class) as revenueratio from cte, item, date_dim where ws_item_sk = i_item_sk  and i_category in ('Men', 'Books', 'Electronics')  and ws_sold_date_sk = d_date_sk and d_date between cast('2001-06-15' as date) and (cast('2001-06-15' as date) + interval '30' day) group by i_item_id ,i_item_desc ,i_category ,i_class ,i_current_price order by  i_category ,i_class ,i_item_id ,i_item_desc ,revenueratio limit 100;```

Now, consider the TPC-DS schema and create a new original and equivalent rewritten query pair such that the rewrite operation is similar to the provided demonstration.Keep the following points in mind while creating the new query pair:
1. The original query must contain CTEs.
2. The original query must make use of the following fact tables: ['catalog_sales', 'catalog_returns', 'store_returns']. Below is the join graph for these fact tables:
    ['catalog_sales(cs_ship_hdemo_sk) references household_demographics(hd_demo_sk);', 'catalog_sales(cs_ship_customer_sk) references customer(c_customer_sk);', 'catalog_sales(cs_promo_sk) references promotion(p_promo_sk);']
    ['catalog_returns(cr_refunded_customer_sk) references customer(c_customer_sk);', 'catalog_returns(cr_returning_hdemo_sk) references household_demographics(hd_demo_sk);', 'catalog_returns(cr_catalog_page_sk) references catalog_page(cp_catalog_page_sk);']
    ['store_returns(sr_reason_sk) references reason(r_reason_sk);', 'store_returns(sr_return_time_sk) references time_dim(t_time_sk);', 'store_returns(sr_addr_sk) references customer_address(ca_address_sk);']
6. The original query must employ 2 joins.
7. The original query must employ the following operators in its WHERE clause: ['avg', 'max', 'count'].
8. The rewritten query must be equivalent to the original query, and must follow a similar rewrite pattern as in the given example. Enclose the original and rewritten queries within ``` and ```.