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']. Below is the join graph for these fact tables:
    ['web_sales(ws_ship_addr_sk) references customer_address(ca_address_sk);', 'web_sales(ws_ship_cdemo_sk) references customer_demographics(cd_demo_sk);', 'web_sales(ws_bill_addr_sk) references customer_address(ca_address_sk);']
4. The original query must employ 3 joins.
5. The original query must employ the following aggregate functions: ['avg', 'min'].
6. The original query must employ the following operators in its WHERE clause: [].
7. 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 ```.