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: ['web_sales', 'inventory', 'catalog_returns']. Below is the join graph for these fact tables:
    ['web_sales(ws_ship_mode_sk) references ship_mode(sm_ship_mode_sk);', 'web_sales(ws_bill_cdemo_sk) references customer_demographics(cd_demo_sk);', 'web_sales(ws_ship_hdemo_sk) references household_demographics(hd_demo_sk);']
    ['inventory(inv_item_sk) references item(i_item_sk);', 'inventory(inv_warehouse_sk) references warehouse(w_warehouse_sk);', 'inventory(inv_date_sk) references date_dim(d_date_sk);']
    ['catalog_returns(cr_returning_cdemo_sk) references customer_demographics(cd_demo_sk);', 'catalog_returns(cr_returning_hdemo_sk) references household_demographics(hd_demo_sk);', 'catalog_returns(cr_item_sk) references item(i_item_sk);']
6. The original query must employ 4 joins.
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 a similar rewrite pattern as in the given example. Enclose the original and rewritten queries within ``` and ```.