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,ca_country,ca_state,ca_county,avg( cast(cs_quantity as decimal(12,2))) agg1,avg( cast(cs_list_price as decimal(12,2))) agg2,avg( cast(cs_coupon_amt as decimal(12,2))) agg3,avg( cast(cs_sales_price as decimal(12,2))) agg4,avg( cast(cs_net_profit as decimal(12,2))) agg5,avg( cast(c_birth_year as decimal(12,2))) agg6,avg( cast(cd1.cd_dep_count as decimal(12,2))) agg7 from catalog_sales,customer_demographics cd1,customer_demographics cd2,customer,customer_address,date_dim,item where cs_sold_date_sk = d_date_sk and cs_item_sk = i_item_sk and cs_bill_cdemo_sk = cd1.cd_demo_sk and cs_bill_customer_sk = c_customer_sk and cd1.cd_gender = 'F' and cd1.cd_education_status = 'Primary' and c_current_cdemo_sk = cd2.cd_demo_sk and c_current_addr_sk = ca_address_sk and c_birth_month in (1,3,7,11,10,4) and d_year = 2001 and ca_state in ('AL','MO','TN','GA','MT','IN','CA') group by rollup (i_item_id,ca_country,ca_state,ca_county) order by ca_country,ca_state,ca_county,i_item_id limit 100; ```

[REWRITTEN QUERY]```with catalog_sales_filtered as (select * from catalog_sales where cs_sold_date_sk in (select d_date_sk from date_dim where d_year = 2001)) select i_item_id,ca_country,ca_state,ca_county,avg( cast(cs_quantity as decimal(12,2))) agg1,avg( cast(cs_list_price as decimal(12,2))) agg2,avg( cast(cs_coupon_amt as decimal(12,2))) agg3,avg( cast(cs_sales_price as decimal(12,2))) agg4,avg( cast(cs_net_profit as decimal(12,2))) agg5,avg( cast(c_birth_year as decimal(12,2))) agg6,avg( cast(cd1.cd_dep_count as decimal(12,2))) agg7 from catalog_sales_filtered,customer_demographics cd1,customer_demographics cd2,customer,customer_address,date_dim,item where cs_sold_date_sk = d_date_sk and cs_item_sk = i_item_sk and cs_bill_cdemo_sk = cd1.cd_demo_sk and cs_bill_customer_sk = c_customer_sk and cd1.cd_gender = 'F' and cd1.cd_education_status = 'Primary' and c_current_cdemo_sk = cd2.cd_demo_sk and c_current_addr_sk = ca_address_sk and c_birth_month in (1,3,7,11,10,4) and d_year = 2001 and ca_state in ('AL','MO','TN','GA','MT','IN','CA') group by rollup (i_item_id,ca_country,ca_state,ca_county) order by ca_country,ca_state,ca_county,i_item_id 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', 'store_returns', 'catalog_sales']. Below is the join graph for these fact tables:
    ['web_sales(ws_sold_time_sk) references time_dim(t_time_sk);', 'web_sales(ws_ship_cdemo_sk) references customer_demographics(cd_demo_sk);', 'web_sales(ws_ship_customer_sk) references customer(c_customer_sk);']
    ['store_returns(sr_addr_sk) references customer_address(ca_address_sk);', 'store_returns(sr_hdemo_sk) references household_demographics(hd_demo_sk);', 'store_returns(sr_reason_sk) references reason(r_reason_sk);']
    ['catalog_sales(cs_promo_sk) references promotion(p_promo_sk);', 'catalog_sales(cs_ship_customer_sk) references customer(c_customer_sk);', 'catalog_sales(cs_catalog_page_sk) references catalog_page(cp_catalog_page_sk);']
6. The original query must employ 3 joins.
7. The original query must employ the following operators in its WHERE clause: [].
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 ```.