├── modified ├── query12.sql ├── query20.sql ├── query44.sql ├── query47.sql ├── query53.sql ├── query57.sql ├── query63.sql ├── query89.sql └── query98.sql ├── query1.sql ├── query10.sql ├── query11.sql ├── query12.sql ├── query13.sql ├── query14.sql ├── query15.sql ├── query16.sql ├── query17.sql ├── query18.sql ├── query19.sql ├── query2.sql ├── query20.sql ├── query21.sql ├── query22.sql ├── query23.sql ├── query24.sql ├── query25.sql ├── query26.sql ├── query27.sql ├── query28.sql ├── query29.sql ├── query3.sql ├── query30.sql ├── query31.sql ├── query32.sql ├── query33.sql ├── query34.sql ├── query35.sql ├── query36.sql ├── query37.sql ├── query38.sql ├── query39.sql ├── query4.sql ├── query40.sql ├── query41.sql ├── query42.sql ├── query43.sql ├── query44.sql ├── query45.sql ├── query46.sql ├── query47.sql ├── query48.sql ├── query49.sql ├── query5.sql ├── query50.sql ├── query51.sql ├── query52.sql ├── query53.sql ├── query54.sql ├── query55.sql ├── query56.sql ├── query57.sql ├── query58.sql ├── query59.sql ├── query6.sql ├── query60.sql ├── query61.sql ├── query62.sql ├── query63.sql ├── query64.sql ├── query65.sql ├── query66.sql ├── query67.sql ├── query68.sql ├── query69.sql ├── query7.sql ├── query70.sql ├── query71.sql ├── query72.sql ├── query73.sql ├── query74.sql ├── query75.sql ├── query76.sql ├── query77.sql ├── query78.sql ├── query79.sql ├── query8.sql ├── query80.sql ├── query81.sql ├── query82.sql ├── query83.sql ├── query84.sql ├── query85.sql ├── query86.sql ├── query87.sql ├── query88.sql ├── query89.sql ├── query9.sql ├── query90.sql ├── query91.sql ├── query92.sql ├── query93.sql ├── query94.sql ├── query95.sql ├── query96.sql ├── query97.sql ├── query98.sql └── query99.sql /modified/query12.sql: -------------------------------------------------------------------------------- 1 | -- start query 12 in stream 0 using template query12.tpl 2 | SELECT item_id , 3 | item_desc , 4 | category , 5 | class , 6 | current_price , 7 | itemrevenue, 8 | itemrevenue*100/sum(itemrevenue) OVER (partition BY class) AS revenueratio 9 | FROM( 10 | SELECT 11 | i.i_item_id item_id, 12 | i.i_item_desc item_desc, 13 | i.i_category category, 14 | i.i_class class, 15 | i.i_current_price current_price, 16 | Sum(w.ws_ext_sales_price) AS itemrevenue 17 | FROM web_sales w, 18 | item i, 19 | date_dim d 20 | WHERE w.ws_item_sk = i.i_item_sk 21 | AND i.i_category IN ('Home', 22 | 'Men', 23 | 'Women') 24 | AND w.ws_sold_date_sk = d.d_date_sk 25 | AND d.d_date BETWEEN Cast('2000-05-11' AS DATE) AND ( 26 | Cast('2000-05-11' AS DATE) + INTERVAL '30' day) 27 | GROUP BY i.i_item_id , 28 | i.i_item_desc , 29 | i.i_category , 30 | i.i_class , 31 | i.i_current_price 32 | ) 33 | ORDER BY category , 34 | class , 35 | item_id , 36 | item_desc , 37 | revenueratio 38 | LIMIT 100 39 | ; 40 | 41 | -------------------------------------------------------------------------------- /modified/query20.sql: -------------------------------------------------------------------------------- 1 | -- start query 20 in stream 0 using template query20.tpl 2 | SELECT 3 | item_id, 4 | item_desc, 5 | category, 6 | class, 7 | current_price, 8 | itemrevenue, 9 | itemrevenue*100/Sum(itemrevenue) OVER (partition BY class) AS revenueratio 10 | FROM ( 11 | SELECT 12 | i.i_item_id item_id, 13 | i.i_item_desc item_desc, 14 | i.i_category category, 15 | i.i_class class, 16 | i.i_current_price current_price, 17 | Sum(c.cs_ext_sales_price) AS itemrevenue 18 | FROM catalog_sales c, 19 | item i, 20 | date_dim d 21 | WHERE c.cs_item_sk = i.i_item_sk 22 | AND i.i_category IN ('Children', 23 | 'Women', 24 | 'Electronics') 25 | AND c.cs_sold_date_sk = d.d_date_sk 26 | AND d.d_date BETWEEN Cast('2001-02-03' AS DATE) AND ( 27 | Cast('2001-02-03' AS DATE) + INTERVAL '30' day) 28 | GROUP BY i.i_item_id , 29 | i.i_item_desc , 30 | i.i_category , 31 | i.i_class , 32 | i.i_current_price 33 | ) 34 | ORDER BY category , 35 | class , 36 | item_id , 37 | item_desc , 38 | revenueratio 39 | LIMIT 100; 40 | 41 | -------------------------------------------------------------------------------- /modified/query44.sql: -------------------------------------------------------------------------------- 1 | -- start query 44 in stream 0 using template query44.tpl 2 | SELECT asceding.rnk, 3 | i1.i_product_name best_performing, 4 | i2.i_product_name worst_performing 5 | FROM (SELECT * 6 | FROM (SELECT item_sk, 7 | Rank() 8 | OVER ( 9 | ORDER BY rank_col ASC) rnk 10 | FROM (SELECT ss_item_sk item_sk, 11 | Avg(ss_net_profit) rank_col 12 | FROM store_sales ss1 13 | WHERE ss_store_sk = 4 14 | GROUP BY ss_item_sk 15 | HAVING Avg(ss_net_profit) > 0.9 * 16 | (SELECT Avg(ss_net_profit) 17 | rank_col 18 | FROM store_sales 19 | WHERE ss_store_sk = 4 20 | AND ss_cdemo_sk IS 21 | NULL 22 | GROUP BY ss_store_sk))V1) 23 | V11 24 | WHERE rnk < 11) asceding, 25 | (SELECT * 26 | FROM (SELECT item_sk, 27 | Rank() 28 | OVER ( 29 | ORDER BY rank_col DESC) rnk 30 | FROM (SELECT ss_item_sk item_sk, 31 | Avg(ss_net_profit) rank_col 32 | FROM store_sales ss1 33 | WHERE ss_store_sk = 4 34 | GROUP BY ss_item_sk 35 | HAVING Avg(ss_net_profit) > 0.9 * 36 | (SELECT Avg(ss_net_profit) 37 | rank_col 38 | FROM store_sales 39 | WHERE ss_store_sk = 4 40 | AND ss_cdemo_sk IS 41 | NULL 42 | GROUP BY ss_store_sk))V2) 43 | V21 44 | WHERE rnk < 11) descending, 45 | item i1, 46 | item i2 47 | WHERE asceding.rnk = descending.rnk 48 | AND i1.i_item_sk = asceding.item_sk 49 | AND i2.i_item_sk = descending.item_sk 50 | ORDER BY asceding.rnk 51 | LIMIT 100; 52 | -------------------------------------------------------------------------------- /modified/query47.sql: -------------------------------------------------------------------------------- 1 | -- start query 47 in stream 0 using template query47.tpl 2 | WITH v1 3 | AS ( 4 | SELECT category, 5 | brand, 6 | store_name, 7 | company_name, 8 | dyear, 9 | dmoy, 10 | sum_sales, 11 | Avg(sum_sales) 12 | OVER ( 13 | partition BY category, brand, store_name, 14 | company_name, 15 | dyear) 16 | avg_monthly_sales, 17 | Rank() 18 | OVER ( 19 | partition BY category, brand, store_name, 20 | company_name 21 | ORDER BY dyear, dmoy) rn 22 | FROM( 23 | SELECT i.i_category category, 24 | i.i_brand brand, 25 | s.s_store_name store_name, 26 | s.s_company_name company_name, 27 | d.d_year dyear, 28 | d.d_moy dmoy, 29 | Sum(ss.ss_sales_price) sum_sales 30 | FROM item i, 31 | store_sales ss, 32 | date_dim d, 33 | store s 34 | WHERE ss.ss_item_sk = i.i_item_sk 35 | AND ss.ss_sold_date_sk = d.d_date_sk 36 | AND ss.ss_store_sk = s.s_store_sk 37 | AND ( d.d_year = 1999 38 | OR ( d.d_year = 1999 - 1 39 | AND d.d_moy = 12 ) 40 | OR ( d.d_year = 1999 + 1 41 | AND d.d_moy = 1 ) ) 42 | GROUP BY i.i_category, 43 | i.i_brand, 44 | s.s_store_name, 45 | s.s_company_name, 46 | d.d_year, 47 | d.d_moy) 48 | ), 49 | v2 50 | AS (SELECT v1.category, 51 | v1.dyear, 52 | v1.dmoy, 53 | v1.avg_monthly_sales, 54 | v1.sum_sales, 55 | v1_lag.sum_sales psum, 56 | v1_lead.sum_sales nsum 57 | FROM v1, 58 | v1 v1_lag, 59 | v1 v1_lead 60 | WHERE v1.category = v1_lag.category 61 | AND v1.category = v1_lead.category 62 | AND v1.brand = v1_lag.brand 63 | AND v1.brand = v1_lead.brand 64 | AND v1.store_name = v1_lag.store_name 65 | AND v1.store_name = v1_lead.store_name 66 | AND v1.company_name = v1_lag.company_name 67 | AND v1.company_name = v1_lead.company_name 68 | AND v1.rn = v1_lag.rn + 1 69 | AND v1.rn = v1_lead.rn - 1) 70 | SELECT * 71 | FROM v2 72 | WHERE dyear = 1999 73 | AND avg_monthly_sales > 0 74 | AND CASE 75 | WHEN avg_monthly_sales > 0 THEN Abs(sum_sales - avg_monthly_sales) 76 | / 77 | avg_monthly_sales 78 | ELSE NULL 79 | END > 0.1 80 | ORDER BY sum_sales - avg_monthly_sales, 81 | 3 82 | LIMIT 10; 83 | -------------------------------------------------------------------------------- /modified/query53.sql: -------------------------------------------------------------------------------- 1 | -- start query 53 in stream 0 using template query53.tpl 2 | SELECT * 3 | FROM ( 4 | SELECT manufact_id, 5 | sum_sales, 6 | Avg(sum_sales) 7 | OVER ( 8 | partition BY manufact_id) avg_quarterly_sales 9 | FROM ( 10 | SELECT i.i_manufact_id manufact_id, 11 | Sum(ss.ss_sales_price) sum_sales 12 | FROM item i, 13 | store_sales ss, 14 | date_dim d, 15 | store s 16 | WHERE ss.ss_item_sk = i.i_item_sk 17 | AND ss.ss_sold_date_sk = d.d_date_sk 18 | AND ss.ss_store_sk = s.s_store_sk 19 | AND d.d_month_seq IN ( 1199, 1199 + 1, 1199 + 2, 1199 + 3, 20 | 1199 + 4, 1199 + 5, 1199 + 6, 1199 + 7, 21 | 1199 + 8, 1199 + 9, 1199 + 10, 1199 + 11 ) 22 | AND ( ( i.i_category IN ( 'Books', 'Children', 'Electronics' ) 23 | AND i.i_class IN ( 'personal', 'portable', 'reference', 24 | 'self-help' ) 25 | AND i.i_brand IN ( 'scholaramalgamalg #14', 26 | 'scholaramalgamalg #7' 27 | , 28 | 'exportiunivamalg #9', 29 | 'scholaramalgamalg #9' ) 30 | ) 31 | OR ( i.i_category IN ( 'Women', 'Music', 'Men' ) 32 | AND i.i_class IN ( 'accessories', 'classical', 33 | 'fragrances', 34 | 'pants' ) 35 | AND i.i_brand IN ( 'amalgimporto #1', 36 | 'edu packscholar #1', 37 | 'exportiimporto #1', 38 | 'importoamalg #1' ) ) ) 39 | GROUP BY i.i_manufact_id, 40 | d.d_qoy) tmp1 41 | ) 42 | WHERE CASE 43 | WHEN avg_quarterly_sales > 0 THEN Abs (sum_sales - avg_quarterly_sales) 44 | / 45 | avg_quarterly_sales 46 | ELSE NULL 47 | END > 0.1 48 | ORDER BY avg_quarterly_sales, 49 | sum_sales, 50 | manufact_id 51 | LIMIT 100; 52 | -------------------------------------------------------------------------------- /modified/query57.sql: -------------------------------------------------------------------------------- 1 | -- start query 57 in stream 0 using template query57.tpl 2 | WITH v1 3 | AS ( 4 | SELECT category, 5 | brand, 6 | name, 7 | dyear, 8 | dmoy, 9 | sum_sales, 10 | Avg(sum_sales) 11 | OVER ( 12 | partition BY category, brand, name, dyear) 13 | avg_monthly_sales 14 | , 15 | Rank() 16 | OVER ( 17 | partition BY category, brand, name 18 | ORDER BY dyear, dmoy) rn 19 | FROM( 20 | SELECT i.i_category category, 21 | i.i_brand brand, 22 | cc.cc_name name, 23 | d.d_year dyear, 24 | d.d_moy dmoy, 25 | Sum(cs.cs_sales_price) sum_sales 26 | FROM item i, 27 | catalog_sales cs, 28 | date_dim d, 29 | call_center cc 30 | WHERE cs.cs_item_sk = i.i_item_sk 31 | AND cs.cs_sold_date_sk = d.d_date_sk 32 | AND cc.cc_call_center_sk = cs.cs_call_center_sk 33 | AND ( d.d_year = 2000 34 | OR ( d.d_year = 2000 - 1 35 | AND d.d_moy = 12 ) 36 | OR ( d.d_year = 2000 + 1 37 | AND d.d_moy = 1 ) ) 38 | GROUP BY i.i_category, 39 | i.i_brand, 40 | cc.cc_name, 41 | d.d_year, 42 | d.d_moy) 43 | ), 44 | v2 45 | AS (SELECT v1.brand, 46 | v1.dyear, 47 | v1.avg_monthly_sales, 48 | v1.sum_sales, 49 | v1_lag.sum_sales psum, 50 | v1_lead.sum_sales nsum 51 | FROM v1, 52 | v1 v1_lag, 53 | v1 v1_lead 54 | WHERE v1.category = v1_lag.category 55 | AND v1.category = v1_lead.category 56 | AND v1.brand = v1_lag.brand 57 | AND v1.brand = v1_lead.brand 58 | AND v1.name = v1_lag.name 59 | AND v1.name = v1_lead.name 60 | AND v1.rn = v1_lag.rn + 1 61 | AND v1.rn = v1_lead.rn - 1) 62 | SELECT * 63 | FROM v2 64 | WHERE dyear = 2000 65 | AND avg_monthly_sales > 0 66 | AND CASE 67 | WHEN avg_monthly_sales > 0 THEN Abs(sum_sales - avg_monthly_sales) 68 | / 69 | avg_monthly_sales 70 | ELSE NULL 71 | END > 0.1 72 | ORDER BY sum_sales - avg_monthly_sales, 73 | 3 74 | LIMIT 10; 75 | -------------------------------------------------------------------------------- /modified/query63.sql: -------------------------------------------------------------------------------- 1 | -- start query 63 in stream 0 using template query63.tpl 2 | SELECT * 3 | FROM ( 4 | SELECT manager_id, 5 | sum_sales, 6 | Avg(sum_sales) 7 | OVER ( 8 | partition BY manager_id) avg_monthly_sales 9 | FROM 10 | ( 11 | SELECT i.i_manager_id manager_id, 12 | Sum(ss.ss_sales_price) sum_sales 13 | FROM item i, 14 | store_sales ss, 15 | date_dim d, 16 | store s 17 | WHERE ss.ss_item_sk = i.i_item_sk 18 | AND ss.ss_sold_date_sk = d.d_date_sk 19 | AND ss.ss_store_sk = s.s_store_sk 20 | AND d.d_month_seq IN ( 1200, 1200 + 1, 1200 + 2, 1200 + 3, 21 | 1200 + 4, 1200 + 5, 1200 + 6, 1200 + 7, 22 | 1200 + 8, 1200 + 9, 1200 + 10, 1200 + 11 ) 23 | AND ( ( i.i_category IN ( 'Books', 'Children', 'Electronics' ) 24 | AND i.i_class IN ( 'personal', 'portable', 'reference', 25 | 'self-help' ) 26 | AND i.i_brand IN ( 'scholaramalgamalg #14', 27 | 'scholaramalgamalg #7' 28 | , 29 | 'exportiunivamalg #9', 30 | 'scholaramalgamalg #9' ) 31 | ) 32 | OR ( i.i_category IN ( 'Women', 'Music', 'Men' ) 33 | AND i.i_class IN ( 'accessories', 'classical', 34 | 'fragrances', 35 | 'pants' ) 36 | AND i.i_brand IN ( 'amalgimporto #1', 37 | 'edu packscholar #1', 38 | 'exportiimporto #1', 39 | 'importoamalg #1' ) ) ) 40 | GROUP BY i.i_manager_id, 41 | d.d_moy 42 | )) tmp1 43 | WHERE CASE 44 | WHEN avg_monthly_sales > 0 THEN Abs (sum_sales - avg_monthly_sales) / 45 | avg_monthly_sales 46 | ELSE NULL 47 | END > 0.1 48 | ORDER BY manager_id, 49 | avg_monthly_sales, 50 | sum_sales 51 | LIMIT 100; 52 | -------------------------------------------------------------------------------- /modified/query89.sql: -------------------------------------------------------------------------------- 1 | -- start query 89 in stream 0 using template query89.tpl 2 | SELECT * 3 | FROM ( 4 | SELECT 5 | category, 6 | class, 7 | brand, 8 | store_name, 9 | company_name, 10 | dmoy, 11 | sum_sales, 12 | Avg(sum_sales) 13 | OVER ( 14 | partition BY category, brand, store_name, company_name 15 | ) 16 | avg_monthly_sales 17 | FROM 18 | ( 19 | SELECT i.i_category category, 20 | i.i_class class, 21 | i.i_brand brand, 22 | s.s_store_name store_name, 23 | s.s_company_name company_name, 24 | d.d_moy dmoy, 25 | Sum(ss.ss_sales_price) sum_sales 26 | FROM item i, 27 | store_sales ss, 28 | date_dim d, 29 | store s 30 | WHERE ss.ss_item_sk = i.i_item_sk 31 | AND ss.ss_sold_date_sk = d.d_date_sk 32 | AND ss.ss_store_sk = s.s_store_sk 33 | AND d.d_year IN ( 2002 ) 34 | AND ( ( i.i_category IN ( 'Home', 'Men', 'Sports' ) 35 | AND i.i_class IN ( 'paint', 'accessories', 'fitness' ) ) 36 | OR ( i.i_category IN ( 'Shoes', 'Jewelry', 'Women' ) 37 | AND i.i_class IN ( 'mens', 'pendants', 'swimwear' ) ) ) 38 | GROUP BY i.i_category, 39 | i.i_class, 40 | i.i_brand, 41 | s.s_store_name, 42 | s.s_company_name, 43 | d.d_moy 44 | )) tmp1 45 | WHERE CASE 46 | WHEN ( avg_monthly_sales <> 0 ) THEN ( 47 | Abs(sum_sales - avg_monthly_sales) / avg_monthly_sales ) 48 | ELSE NULL 49 | END > 0.1 50 | ORDER BY sum_sales - avg_monthly_sales, 51 | store_name 52 | LIMIT 10; 53 | -------------------------------------------------------------------------------- /modified/query98.sql: -------------------------------------------------------------------------------- 1 | -- start query 98 in stream 0 using template query98.tpl 2 | SELECT 3 | item_id, 4 | item_desc, 5 | category, 6 | class, 7 | current_price, 8 | itemrevenue, 9 | itemrevenue * 100 / Sum(itemrevenue) 10 | OVER ( 11 | PARTITION BY class) AS revenueratio 12 | FROM 13 | ( 14 | SELECT i.i_item_id as item_id, 15 | i.i_item_desc as item_desc, 16 | i.i_category as category, 17 | i.i_class as class, 18 | i.i_current_price as current_price, 19 | Sum(s.ss_ext_sales_price) AS itemrevenue 20 | FROM store_sales s, 21 | item i, 22 | date_dim d 23 | WHERE s.ss_item_sk = i.i_item_sk 24 | AND i.i_category IN ( 'Men', 'Home', 'Electronics' ) 25 | AND s.ss_sold_date_sk = d.d_date_sk 26 | AND d.d_date BETWEEN CAST('2000-05-18' AS DATE) AND ( 27 | CAST('2000-05-18' AS DATE) + INTERVAL '30' DAY ) 28 | GROUP BY i.i_item_id, 29 | i.i_item_desc, 30 | i.i_category, 31 | i.i_class, 32 | i.i_current_price 33 | ) 34 | ORDER BY category, 35 | class, 36 | item_id, 37 | item_desc, 38 | revenueratio 39 | ; 40 | -------------------------------------------------------------------------------- /query1.sql: -------------------------------------------------------------------------------- 1 | -- start query 1 in stream 0 using template query1.tpl 2 | WITH customer_total_return 3 | AS (SELECT sr_customer_sk AS ctr_customer_sk, 4 | sr_store_sk AS ctr_store_sk, 5 | Sum(sr_return_amt) AS ctr_total_return 6 | FROM store_returns, 7 | date_dim 8 | WHERE sr_returned_date_sk = d_date_sk 9 | AND d_year = 2001 10 | GROUP BY sr_customer_sk, 11 | sr_store_sk) 12 | SELECT c_customer_id 13 | FROM customer_total_return ctr1, 14 | store, 15 | customer 16 | WHERE ctr1.ctr_total_return > (SELECT Avg(ctr_total_return) * 1.2 17 | FROM customer_total_return ctr2 18 | WHERE ctr1.ctr_store_sk = ctr2.ctr_store_sk) 19 | AND s_store_sk = ctr1.ctr_store_sk 20 | AND s_state = 'TN' 21 | AND ctr1.ctr_customer_sk = c_customer_sk 22 | ORDER BY c_customer_id 23 | LIMIT 100; 24 | -------------------------------------------------------------------------------- /query10.sql: -------------------------------------------------------------------------------- 1 | -- start query 10 in stream 0 using template query10.tpl 2 | SELECT cd_gender, 3 | cd_marital_status, 4 | cd_education_status, 5 | Count(*) cnt1, 6 | cd_purchase_estimate, 7 | Count(*) cnt2, 8 | cd_credit_rating, 9 | Count(*) cnt3, 10 | cd_dep_count, 11 | Count(*) cnt4, 12 | cd_dep_employed_count, 13 | Count(*) cnt5, 14 | cd_dep_college_count, 15 | Count(*) cnt6 16 | FROM customer c, 17 | customer_address ca, 18 | customer_demographics 19 | WHERE c.c_current_addr_sk = ca.ca_address_sk 20 | AND ca_county IN ( 'Lycoming County', 'Sheridan County', 21 | 'Kandiyohi County', 22 | 'Pike County', 23 | 'Greene County' ) 24 | AND cd_demo_sk = c.c_current_cdemo_sk 25 | AND EXISTS (SELECT * 26 | FROM store_sales, 27 | date_dim 28 | WHERE c.c_customer_sk = ss_customer_sk 29 | AND ss_sold_date_sk = d_date_sk 30 | AND d_year = 2002 31 | AND d_moy BETWEEN 4 AND 4 + 3) 32 | AND ( EXISTS (SELECT * 33 | FROM web_sales, 34 | date_dim 35 | WHERE c.c_customer_sk = ws_bill_customer_sk 36 | AND ws_sold_date_sk = d_date_sk 37 | AND d_year = 2002 38 | AND d_moy BETWEEN 4 AND 4 + 3) 39 | OR EXISTS (SELECT * 40 | FROM catalog_sales, 41 | date_dim 42 | WHERE c.c_customer_sk = cs_ship_customer_sk 43 | AND cs_sold_date_sk = d_date_sk 44 | AND d_year = 2002 45 | AND d_moy BETWEEN 4 AND 4 + 3) ) 46 | GROUP BY cd_gender, 47 | cd_marital_status, 48 | cd_education_status, 49 | cd_purchase_estimate, 50 | cd_credit_rating, 51 | cd_dep_count, 52 | cd_dep_employed_count, 53 | cd_dep_college_count 54 | ORDER BY cd_gender, 55 | cd_marital_status, 56 | cd_education_status, 57 | cd_purchase_estimate, 58 | cd_credit_rating, 59 | cd_dep_count, 60 | cd_dep_employed_count, 61 | cd_dep_college_count 62 | LIMIT 100; 63 | -------------------------------------------------------------------------------- /query11.sql: -------------------------------------------------------------------------------- 1 | -- start query 11 in stream 0 using template query11.tpl 2 | WITH year_total 3 | AS (SELECT c_customer_id customer_id, 4 | c_first_name customer_first_name 5 | , 6 | c_last_name 7 | customer_last_name, 8 | c_preferred_cust_flag 9 | customer_preferred_cust_flag 10 | , 11 | c_birth_country 12 | customer_birth_country, 13 | c_login customer_login, 14 | c_email_address 15 | customer_email_address, 16 | d_year dyear, 17 | Sum(ss_ext_list_price - ss_ext_discount_amt) year_total, 18 | 's' sale_type 19 | FROM customer, 20 | store_sales, 21 | date_dim 22 | WHERE c_customer_sk = ss_customer_sk 23 | AND ss_sold_date_sk = d_date_sk 24 | GROUP BY c_customer_id, 25 | c_first_name, 26 | c_last_name, 27 | c_preferred_cust_flag, 28 | c_birth_country, 29 | c_login, 30 | c_email_address, 31 | d_year 32 | UNION ALL 33 | SELECT c_customer_id customer_id, 34 | c_first_name customer_first_name 35 | , 36 | c_last_name 37 | customer_last_name, 38 | c_preferred_cust_flag 39 | customer_preferred_cust_flag 40 | , 41 | c_birth_country 42 | customer_birth_country, 43 | c_login customer_login, 44 | c_email_address 45 | customer_email_address, 46 | d_year dyear, 47 | Sum(ws_ext_list_price - ws_ext_discount_amt) year_total, 48 | 'w' sale_type 49 | FROM customer, 50 | web_sales, 51 | date_dim 52 | WHERE c_customer_sk = ws_bill_customer_sk 53 | AND ws_sold_date_sk = d_date_sk 54 | GROUP BY c_customer_id, 55 | c_first_name, 56 | c_last_name, 57 | c_preferred_cust_flag, 58 | c_birth_country, 59 | c_login, 60 | c_email_address, 61 | d_year) 62 | SELECT t_s_secyear.customer_id, 63 | t_s_secyear.customer_first_name, 64 | t_s_secyear.customer_last_name, 65 | t_s_secyear.customer_birth_country 66 | FROM year_total t_s_firstyear, 67 | year_total t_s_secyear, 68 | year_total t_w_firstyear, 69 | year_total t_w_secyear 70 | WHERE t_s_secyear.customer_id = t_s_firstyear.customer_id 71 | AND t_s_firstyear.customer_id = t_w_secyear.customer_id 72 | AND t_s_firstyear.customer_id = t_w_firstyear.customer_id 73 | AND t_s_firstyear.sale_type = 's' 74 | AND t_w_firstyear.sale_type = 'w' 75 | AND t_s_secyear.sale_type = 's' 76 | AND t_w_secyear.sale_type = 'w' 77 | AND t_s_firstyear.dyear = 2001 78 | AND t_s_secyear.dyear = 2001 + 1 79 | AND t_w_firstyear.dyear = 2001 80 | AND t_w_secyear.dyear = 2001 + 1 81 | AND t_s_firstyear.year_total > 0 82 | AND t_w_firstyear.year_total > 0 83 | AND CASE 84 | WHEN t_w_firstyear.year_total > 0 THEN t_w_secyear.year_total / 85 | t_w_firstyear.year_total 86 | ELSE 0.0 87 | END > CASE 88 | WHEN t_s_firstyear.year_total > 0 THEN 89 | t_s_secyear.year_total / 90 | t_s_firstyear.year_total 91 | ELSE 0.0 92 | END 93 | ORDER BY t_s_secyear.customer_id, 94 | t_s_secyear.customer_first_name, 95 | t_s_secyear.customer_last_name, 96 | t_s_secyear.customer_birth_country 97 | LIMIT 100; 98 | -------------------------------------------------------------------------------- /query12.sql: -------------------------------------------------------------------------------- 1 | -- start query 12 in stream 0 using template query12.tpl 2 | SELECT 3 | i_item_id , 4 | i_item_desc , 5 | i_category , 6 | i_class , 7 | i_current_price , 8 | Sum(ws_ext_sales_price) AS itemrevenue , 9 | Sum(ws_ext_sales_price)*100/Sum(Sum(ws_ext_sales_price)) OVER (partition BY i_class) AS revenueratio 10 | FROM web_sales , 11 | item , 12 | date_dim 13 | WHERE ws_item_sk = i_item_sk 14 | AND i_category IN ('Home', 15 | 'Men', 16 | 'Women') 17 | AND ws_sold_date_sk = d_date_sk 18 | AND d_date BETWEEN Cast('2000-05-11' AS DATE) AND ( 19 | Cast('2000-05-11' AS DATE) + INTERVAL '30' day) 20 | GROUP BY i_item_id , 21 | i_item_desc , 22 | i_category , 23 | i_class , 24 | i_current_price 25 | ORDER BY i_category , 26 | i_class , 27 | i_item_id , 28 | i_item_desc , 29 | revenueratio 30 | LIMIT 100; 31 | 32 | -------------------------------------------------------------------------------- /query13.sql: -------------------------------------------------------------------------------- 1 | -- start query 13 in stream 0 using template query13.tpl 2 | SELECT Avg(ss_quantity), 3 | Avg(ss_ext_sales_price), 4 | Avg(ss_ext_wholesale_cost), 5 | Sum(ss_ext_wholesale_cost) 6 | FROM store_sales, 7 | store, 8 | customer_demographics, 9 | household_demographics, 10 | customer_address, 11 | date_dim 12 | WHERE s_store_sk = ss_store_sk 13 | AND ss_sold_date_sk = d_date_sk 14 | AND d_year = 2001 15 | AND ( ( ss_hdemo_sk = hd_demo_sk 16 | AND cd_demo_sk = ss_cdemo_sk 17 | AND cd_marital_status = 'U' 18 | AND cd_education_status = 'Advanced Degree' 19 | AND ss_sales_price BETWEEN 100.00 AND 150.00 20 | AND hd_dep_count = 3 ) 21 | OR ( ss_hdemo_sk = hd_demo_sk 22 | AND cd_demo_sk = ss_cdemo_sk 23 | AND cd_marital_status = 'M' 24 | AND cd_education_status = 'Primary' 25 | AND ss_sales_price BETWEEN 50.00 AND 100.00 26 | AND hd_dep_count = 1 ) 27 | OR ( ss_hdemo_sk = hd_demo_sk 28 | AND cd_demo_sk = ss_cdemo_sk 29 | AND cd_marital_status = 'D' 30 | AND cd_education_status = 'Secondary' 31 | AND ss_sales_price BETWEEN 150.00 AND 200.00 32 | AND hd_dep_count = 1 ) ) 33 | AND ( ( ss_addr_sk = ca_address_sk 34 | AND ca_country = 'United States' 35 | AND ca_state IN ( 'AZ', 'NE', 'IA' ) 36 | AND ss_net_profit BETWEEN 100 AND 200 ) 37 | OR ( ss_addr_sk = ca_address_sk 38 | AND ca_country = 'United States' 39 | AND ca_state IN ( 'MS', 'CA', 'NV' ) 40 | AND ss_net_profit BETWEEN 150 AND 300 ) 41 | OR ( ss_addr_sk = ca_address_sk 42 | AND ca_country = 'United States' 43 | AND ca_state IN ( 'GA', 'TX', 'NJ' ) 44 | AND ss_net_profit BETWEEN 50 AND 250 ) ); 45 | -------------------------------------------------------------------------------- /query15.sql: -------------------------------------------------------------------------------- 1 | -- start query 15 in stream 0 using template query15.tpl 2 | SELECT ca_zip, 3 | Sum(cs_sales_price) 4 | FROM catalog_sales, 5 | customer, 6 | customer_address, 7 | date_dim 8 | WHERE cs_bill_customer_sk = c_customer_sk 9 | AND c_current_addr_sk = ca_address_sk 10 | AND ( Substr(ca_zip, 1, 5) IN ( '85669', '86197', '88274', '83405', 11 | '86475', '85392', '85460', '80348', 12 | '81792' ) 13 | OR ca_state IN ( 'CA', 'WA', 'GA' ) 14 | OR cs_sales_price > 500 ) 15 | AND cs_sold_date_sk = d_date_sk 16 | AND d_qoy = 1 17 | AND d_year = 1998 18 | GROUP BY ca_zip 19 | ORDER BY ca_zip 20 | LIMIT 100; 21 | -------------------------------------------------------------------------------- /query16.sql: -------------------------------------------------------------------------------- 1 | -- start query 16 in stream 0 using template query16.tpl 2 | SELECT 3 | Count(DISTINCT cs_order_number) AS `order count` , 4 | Sum(cs_ext_ship_cost) AS `total shipping cost` , 5 | Sum(cs_net_profit) AS `total net profit` 6 | FROM catalog_sales cs1 , 7 | date_dim , 8 | customer_address , 9 | call_center 10 | WHERE d_date BETWEEN '2002-3-01' AND ( 11 | Cast('2002-3-01' AS DATE) + INTERVAL '60' day) 12 | AND cs1.cs_ship_date_sk = d_date_sk 13 | AND cs1.cs_ship_addr_sk = ca_address_sk 14 | AND ca_state = 'IA' 15 | AND cs1.cs_call_center_sk = cc_call_center_sk 16 | AND cc_county IN ('Williamson County', 17 | 'Williamson County', 18 | 'Williamson County', 19 | 'Williamson County', 20 | 'Williamson County' ) 21 | AND EXISTS 22 | ( 23 | SELECT * 24 | FROM catalog_sales cs2 25 | WHERE cs1.cs_order_number = cs2.cs_order_number 26 | AND cs1.cs_warehouse_sk <> cs2.cs_warehouse_sk) 27 | AND NOT EXISTS 28 | ( 29 | SELECT * 30 | FROM catalog_returns cr1 31 | WHERE cs1.cs_order_number = cr1.cr_order_number) 32 | ORDER BY count(DISTINCT cs_order_number) 33 | LIMIT 100; 34 | 35 | -------------------------------------------------------------------------------- /query17.sql: -------------------------------------------------------------------------------- 1 | -- start query 17 in stream 0 using template query17.tpl 2 | SELECT i_item_id, 3 | i_item_desc, 4 | s_state, 5 | Count(ss_quantity) AS 6 | store_sales_quantitycount, 7 | Avg(ss_quantity) AS 8 | store_sales_quantityave, 9 | Stddev_samp(ss_quantity) AS 10 | store_sales_quantitystdev, 11 | Stddev_samp(ss_quantity) / Avg(ss_quantity) AS 12 | store_sales_quantitycov, 13 | Count(sr_return_quantity) AS 14 | store_returns_quantitycount, 15 | Avg(sr_return_quantity) AS 16 | store_returns_quantityave, 17 | Stddev_samp(sr_return_quantity) AS 18 | store_returns_quantitystdev, 19 | Stddev_samp(sr_return_quantity) / Avg(sr_return_quantity) AS 20 | store_returns_quantitycov, 21 | Count(cs_quantity) AS 22 | catalog_sales_quantitycount, 23 | Avg(cs_quantity) AS 24 | catalog_sales_quantityave, 25 | Stddev_samp(cs_quantity) / Avg(cs_quantity) AS 26 | catalog_sales_quantitystdev, 27 | Stddev_samp(cs_quantity) / Avg(cs_quantity) AS 28 | catalog_sales_quantitycov 29 | FROM store_sales, 30 | store_returns, 31 | catalog_sales, 32 | date_dim d1, 33 | date_dim d2, 34 | date_dim d3, 35 | store, 36 | item 37 | WHERE d1.d_quarter_name = '1999Q1' 38 | AND d1.d_date_sk = ss_sold_date_sk 39 | AND i_item_sk = ss_item_sk 40 | AND s_store_sk = ss_store_sk 41 | AND ss_customer_sk = sr_customer_sk 42 | AND ss_item_sk = sr_item_sk 43 | AND ss_ticket_number = sr_ticket_number 44 | AND sr_returned_date_sk = d2.d_date_sk 45 | AND d2.d_quarter_name IN ( '1999Q1', '1999Q2', '1999Q3' ) 46 | AND sr_customer_sk = cs_bill_customer_sk 47 | AND sr_item_sk = cs_item_sk 48 | AND cs_sold_date_sk = d3.d_date_sk 49 | AND d3.d_quarter_name IN ( '1999Q1', '1999Q2', '1999Q3' ) 50 | GROUP BY i_item_id, 51 | i_item_desc, 52 | s_state 53 | ORDER BY i_item_id, 54 | i_item_desc, 55 | s_state 56 | LIMIT 100; 57 | -------------------------------------------------------------------------------- /query18.sql: -------------------------------------------------------------------------------- 1 | -- start query 18 in stream 0 using template query18.tpl 2 | SELECT i_item_id, 3 | ca_country, 4 | ca_state, 5 | ca_county, 6 | Avg(Cast(cs_quantity AS NUMERIC(12, 2))) agg1, 7 | Avg(Cast(cs_list_price AS NUMERIC(12, 2))) agg2, 8 | Avg(Cast(cs_coupon_amt AS NUMERIC(12, 2))) agg3, 9 | Avg(Cast(cs_sales_price AS NUMERIC(12, 2))) agg4, 10 | Avg(Cast(cs_net_profit AS NUMERIC(12, 2))) agg5, 11 | Avg(Cast(c_birth_year AS NUMERIC(12, 2))) agg6, 12 | Avg(Cast(cd1.cd_dep_count AS NUMERIC(12, 2))) agg7 13 | FROM catalog_sales, 14 | customer_demographics cd1, 15 | customer_demographics cd2, 16 | customer, 17 | customer_address, 18 | date_dim, 19 | item 20 | WHERE cs_sold_date_sk = d_date_sk 21 | AND cs_item_sk = i_item_sk 22 | AND cs_bill_cdemo_sk = cd1.cd_demo_sk 23 | AND cs_bill_customer_sk = c_customer_sk 24 | AND cd1.cd_gender = 'F' 25 | AND cd1.cd_education_status = 'Secondary' 26 | AND c_current_cdemo_sk = cd2.cd_demo_sk 27 | AND c_current_addr_sk = ca_address_sk 28 | AND c_birth_month IN ( 8, 4, 2, 5, 29 | 11, 9 ) 30 | AND d_year = 2001 31 | AND ca_state IN ( 'KS', 'IA', 'AL', 'UT', 32 | 'VA', 'NC', 'TX' ) 33 | GROUP BY rollup ( i_item_id, ca_country, ca_state, ca_county ) 34 | ORDER BY ca_country, 35 | ca_state, 36 | ca_county, 37 | i_item_id 38 | LIMIT 100; 39 | -------------------------------------------------------------------------------- /query19.sql: -------------------------------------------------------------------------------- 1 | -- start query 19 in stream 0 using template query19.tpl 2 | SELECT i_brand_id brand_id, 3 | i_brand brand, 4 | i_manufact_id, 5 | i_manufact, 6 | Sum(ss_ext_sales_price) ext_price 7 | FROM date_dim, 8 | store_sales, 9 | item, 10 | customer, 11 | customer_address, 12 | store 13 | WHERE d_date_sk = ss_sold_date_sk 14 | AND ss_item_sk = i_item_sk 15 | AND i_manager_id = 38 16 | AND d_moy = 12 17 | AND d_year = 1998 18 | AND ss_customer_sk = c_customer_sk 19 | AND c_current_addr_sk = ca_address_sk 20 | AND Substr(ca_zip, 1, 5) <> Substr(s_zip, 1, 5) 21 | AND ss_store_sk = s_store_sk 22 | GROUP BY i_brand, 23 | i_brand_id, 24 | i_manufact_id, 25 | i_manufact 26 | ORDER BY ext_price DESC, 27 | i_brand, 28 | i_brand_id, 29 | i_manufact_id, 30 | i_manufact 31 | LIMIT 100; 32 | -------------------------------------------------------------------------------- /query2.sql: -------------------------------------------------------------------------------- 1 | -- start query 2 in stream 0 using template query2.tpl 2 | WITH wscs 3 | AS (SELECT sold_date_sk, 4 | sales_price 5 | FROM (SELECT ws_sold_date_sk sold_date_sk, 6 | ws_ext_sales_price sales_price 7 | FROM web_sales) 8 | UNION ALL 9 | (SELECT cs_sold_date_sk sold_date_sk, 10 | cs_ext_sales_price sales_price 11 | FROM catalog_sales)), 12 | wswscs 13 | AS (SELECT d_week_seq, 14 | Sum(CASE 15 | WHEN ( d_day_name = 'Sunday' ) THEN sales_price 16 | ELSE NULL 17 | END) sun_sales, 18 | Sum(CASE 19 | WHEN ( d_day_name = 'Monday' ) THEN sales_price 20 | ELSE NULL 21 | END) mon_sales, 22 | Sum(CASE 23 | WHEN ( d_day_name = 'Tuesday' ) THEN sales_price 24 | ELSE NULL 25 | END) tue_sales, 26 | Sum(CASE 27 | WHEN ( d_day_name = 'Wednesday' ) THEN sales_price 28 | ELSE NULL 29 | END) wed_sales, 30 | Sum(CASE 31 | WHEN ( d_day_name = 'Thursday' ) THEN sales_price 32 | ELSE NULL 33 | END) thu_sales, 34 | Sum(CASE 35 | WHEN ( d_day_name = 'Friday' ) THEN sales_price 36 | ELSE NULL 37 | END) fri_sales, 38 | Sum(CASE 39 | WHEN ( d_day_name = 'Saturday' ) THEN sales_price 40 | ELSE NULL 41 | END) sat_sales 42 | FROM wscs, 43 | date_dim 44 | WHERE d_date_sk = sold_date_sk 45 | GROUP BY d_week_seq) 46 | SELECT d_week_seq1, 47 | Round(sun_sales1 / sun_sales2, 2), 48 | Round(mon_sales1 / mon_sales2, 2), 49 | Round(tue_sales1 / tue_sales2, 2), 50 | Round(wed_sales1 / wed_sales2, 2), 51 | Round(thu_sales1 / thu_sales2, 2), 52 | Round(fri_sales1 / fri_sales2, 2), 53 | Round(sat_sales1 / sat_sales2, 2) 54 | FROM (SELECT wswscs.d_week_seq d_week_seq1, 55 | sun_sales sun_sales1, 56 | mon_sales mon_sales1, 57 | tue_sales tue_sales1, 58 | wed_sales wed_sales1, 59 | thu_sales thu_sales1, 60 | fri_sales fri_sales1, 61 | sat_sales sat_sales1 62 | FROM wswscs, 63 | date_dim 64 | WHERE date_dim.d_week_seq = wswscs.d_week_seq 65 | AND d_year = 1998) y, 66 | (SELECT wswscs.d_week_seq d_week_seq2, 67 | sun_sales sun_sales2, 68 | mon_sales mon_sales2, 69 | tue_sales tue_sales2, 70 | wed_sales wed_sales2, 71 | thu_sales thu_sales2, 72 | fri_sales fri_sales2, 73 | sat_sales sat_sales2 74 | FROM wswscs, 75 | date_dim 76 | WHERE date_dim.d_week_seq = wswscs.d_week_seq 77 | AND d_year = 1998 + 1) z 78 | WHERE d_week_seq1 = d_week_seq2 - 53 79 | ORDER BY d_week_seq1; 80 | -------------------------------------------------------------------------------- /query20.sql: -------------------------------------------------------------------------------- 1 | -- start query 20 in stream 0 using template query20.tpl 2 | SELECT 3 | i_item_id , 4 | i_item_desc , 5 | i_category , 6 | i_class , 7 | i_current_price , 8 | Sum(cs_ext_sales_price) AS itemrevenue , 9 | Sum(cs_ext_sales_price)*100/Sum(Sum(cs_ext_sales_price)) OVER (partition BY i_class) AS revenueratio 10 | FROM catalog_sales , 11 | item , 12 | date_dim 13 | WHERE cs_item_sk = i_item_sk 14 | AND i_category IN ('Children', 15 | 'Women', 16 | 'Electronics') 17 | AND cs_sold_date_sk = d_date_sk 18 | AND d_date BETWEEN Cast('2001-02-03' AS DATE) AND ( 19 | Cast('2001-02-03' AS DATE) + INTERVAL '30' day) 20 | GROUP BY i_item_id , 21 | i_item_desc , 22 | i_category , 23 | i_class , 24 | i_current_price 25 | ORDER BY i_category , 26 | i_class , 27 | i_item_id , 28 | i_item_desc , 29 | revenueratio 30 | LIMIT 100; 31 | 32 | -------------------------------------------------------------------------------- /query21.sql: -------------------------------------------------------------------------------- 1 | -- start query 21 in stream 0 using template query21.tpl 2 | SELECT 3 | * 4 | FROM ( 5 | SELECT w_warehouse_name , 6 | i_item_id , 7 | Sum( 8 | CASE 9 | WHEN ( 10 | Cast(d_date AS DATE) < Cast ('2000-05-13' AS DATE)) THEN inv_quantity_on_hand 11 | ELSE 0 12 | END) AS inv_before , 13 | Sum( 14 | CASE 15 | WHEN ( 16 | Cast(d_date AS DATE) >= Cast ('2000-05-13' AS DATE)) THEN inv_quantity_on_hand 17 | ELSE 0 18 | END) AS inv_after 19 | FROM inventory , 20 | warehouse , 21 | item , 22 | date_dim 23 | WHERE i_current_price BETWEEN 0.99 AND 1.49 24 | AND i_item_sk = inv_item_sk 25 | AND inv_warehouse_sk = w_warehouse_sk 26 | AND inv_date_sk = d_date_sk 27 | AND d_date BETWEEN (Cast ('2000-05-13' AS DATE) - INTERVAL '30' day) AND ( 28 | cast ('2000-05-13' AS date) + INTERVAL '30' day) 29 | GROUP BY w_warehouse_name, 30 | i_item_id) x 31 | WHERE ( 32 | CASE 33 | WHEN inv_before > 0 THEN inv_after / inv_before 34 | ELSE NULL 35 | END) BETWEEN 2.0/3.0 AND 3.0/2.0 36 | ORDER BY w_warehouse_name , 37 | i_item_id 38 | LIMIT 100; 39 | 40 | -------------------------------------------------------------------------------- /query22.sql: -------------------------------------------------------------------------------- 1 | -- start query 22 in stream 0 using template query22.tpl 2 | SELECT i_product_name, 3 | i_brand, 4 | i_class, 5 | i_category, 6 | Avg(inv_quantity_on_hand) qoh 7 | FROM inventory, 8 | date_dim, 9 | item, 10 | warehouse 11 | WHERE inv_date_sk = d_date_sk 12 | AND inv_item_sk = i_item_sk 13 | AND inv_warehouse_sk = w_warehouse_sk 14 | AND d_month_seq BETWEEN 1205 AND 1205 + 11 15 | GROUP BY rollup( i_product_name, i_brand, i_class, i_category ) 16 | ORDER BY qoh, 17 | i_product_name, 18 | i_brand, 19 | i_class, 20 | i_category 21 | LIMIT 100; 22 | -------------------------------------------------------------------------------- /query23.sql: -------------------------------------------------------------------------------- 1 | -- start query 23 in stream 0 using template query23.tpl 2 | WITH frequent_ss_items 3 | AS (SELECT Substr(i_item_desc, 1, 30) itemdesc, 4 | i_item_sk item_sk, 5 | d_date solddate, 6 | Count(*) cnt 7 | FROM store_sales, 8 | date_dim, 9 | item 10 | WHERE ss_sold_date_sk = d_date_sk 11 | AND ss_item_sk = i_item_sk 12 | AND d_year IN ( 1998, 1998 + 1, 1998 + 2, 1998 + 3 ) 13 | GROUP BY Substr(i_item_desc, 1, 30), 14 | i_item_sk, 15 | d_date 16 | HAVING Count(*) > 4), 17 | max_store_sales 18 | AS (SELECT Max(csales) tpcds_cmax 19 | FROM (SELECT c_customer_sk, 20 | Sum(ss_quantity * ss_sales_price) csales 21 | FROM store_sales, 22 | customer, 23 | date_dim 24 | WHERE ss_customer_sk = c_customer_sk 25 | AND ss_sold_date_sk = d_date_sk 26 | AND d_year IN ( 1998, 1998 + 1, 1998 + 2, 1998 + 3 ) 27 | GROUP BY c_customer_sk)), 28 | best_ss_customer 29 | AS (SELECT c_customer_sk, 30 | Sum(ss_quantity * ss_sales_price) ssales 31 | FROM store_sales, 32 | customer 33 | WHERE ss_customer_sk = c_customer_sk 34 | GROUP BY c_customer_sk 35 | HAVING Sum(ss_quantity * ss_sales_price) > 36 | ( 95 / 100.0 ) * (SELECT * 37 | FROM max_store_sales)) 38 | SELECT Sum(sales) 39 | FROM (SELECT cs_quantity * cs_list_price sales 40 | FROM catalog_sales, 41 | date_dim 42 | WHERE d_year = 1998 43 | AND d_moy = 6 44 | AND cs_sold_date_sk = d_date_sk 45 | AND cs_item_sk IN (SELECT item_sk 46 | FROM frequent_ss_items) 47 | AND cs_bill_customer_sk IN (SELECT c_customer_sk 48 | FROM best_ss_customer) 49 | UNION ALL 50 | SELECT ws_quantity * ws_list_price sales 51 | FROM web_sales, 52 | date_dim 53 | WHERE d_year = 1998 54 | AND d_moy = 6 55 | AND ws_sold_date_sk = d_date_sk 56 | AND ws_item_sk IN (SELECT item_sk 57 | FROM frequent_ss_items) 58 | AND ws_bill_customer_sk IN (SELECT c_customer_sk 59 | FROM best_ss_customer)) LIMIT 100; 60 | 61 | WITH frequent_ss_items 62 | AS (SELECT Substr(i_item_desc, 1, 30) itemdesc, 63 | i_item_sk item_sk, 64 | d_date solddate, 65 | Count(*) cnt 66 | FROM store_sales, 67 | date_dim, 68 | item 69 | WHERE ss_sold_date_sk = d_date_sk 70 | AND ss_item_sk = i_item_sk 71 | AND d_year IN ( 1998, 1998 + 1, 1998 + 2, 1998 + 3 ) 72 | GROUP BY Substr(i_item_desc, 1, 30), 73 | i_item_sk, 74 | d_date 75 | HAVING Count(*) > 4), 76 | max_store_sales 77 | AS (SELECT Max(csales) tpcds_cmax 78 | FROM (SELECT c_customer_sk, 79 | Sum(ss_quantity * ss_sales_price) csales 80 | FROM store_sales, 81 | customer, 82 | date_dim 83 | WHERE ss_customer_sk = c_customer_sk 84 | AND ss_sold_date_sk = d_date_sk 85 | AND d_year IN ( 1998, 1998 + 1, 1998 + 2, 1998 + 3 ) 86 | GROUP BY c_customer_sk)), 87 | best_ss_customer 88 | AS (SELECT c_customer_sk, 89 | Sum(ss_quantity * ss_sales_price) ssales 90 | FROM store_sales, 91 | customer 92 | WHERE ss_customer_sk = c_customer_sk 93 | GROUP BY c_customer_sk 94 | HAVING Sum(ss_quantity * ss_sales_price) > 95 | ( 95 / 100.0 ) * (SELECT * 96 | FROM max_store_sales)) 97 | SELECT c_last_name, 98 | c_first_name, 99 | sales 100 | FROM (SELECT c_last_name, 101 | c_first_name, 102 | Sum(cs_quantity * cs_list_price) sales 103 | FROM catalog_sales, 104 | customer, 105 | date_dim 106 | WHERE d_year = 1998 107 | AND d_moy = 6 108 | AND cs_sold_date_sk = d_date_sk 109 | AND cs_item_sk IN (SELECT item_sk 110 | FROM frequent_ss_items) 111 | AND cs_bill_customer_sk IN (SELECT c_customer_sk 112 | FROM best_ss_customer) 113 | AND cs_bill_customer_sk = c_customer_sk 114 | GROUP BY c_last_name, 115 | c_first_name 116 | UNION ALL 117 | SELECT c_last_name, 118 | c_first_name, 119 | Sum(ws_quantity * ws_list_price) sales 120 | FROM web_sales, 121 | customer, 122 | date_dim 123 | WHERE d_year = 1998 124 | AND d_moy = 6 125 | AND ws_sold_date_sk = d_date_sk 126 | AND ws_item_sk IN (SELECT item_sk 127 | FROM frequent_ss_items) 128 | AND ws_bill_customer_sk IN (SELECT c_customer_sk 129 | FROM best_ss_customer) 130 | AND ws_bill_customer_sk = c_customer_sk 131 | GROUP BY c_last_name, 132 | c_first_name) 133 | ORDER BY c_last_name, 134 | c_first_name, 135 | sales 136 | LIMIT 100; 137 | -------------------------------------------------------------------------------- /query24.sql: -------------------------------------------------------------------------------- 1 | -- start query 24 in stream 0 using template query24.tpl 2 | WITH ssales 3 | AS (SELECT c_last_name, 4 | c_first_name, 5 | s_store_name, 6 | ca_state, 7 | s_state, 8 | i_color, 9 | i_current_price, 10 | i_manager_id, 11 | i_units, 12 | i_size, 13 | Sum(ss_net_profit) netpaid 14 | FROM store_sales, 15 | store_returns, 16 | store, 17 | item, 18 | customer, 19 | customer_address 20 | WHERE ss_ticket_number = sr_ticket_number 21 | AND ss_item_sk = sr_item_sk 22 | AND ss_customer_sk = c_customer_sk 23 | AND ss_item_sk = i_item_sk 24 | AND ss_store_sk = s_store_sk 25 | AND c_birth_country = Upper(ca_country) 26 | AND s_zip = ca_zip 27 | AND s_market_id = 6 28 | GROUP BY c_last_name, 29 | c_first_name, 30 | s_store_name, 31 | ca_state, 32 | s_state, 33 | i_color, 34 | i_current_price, 35 | i_manager_id, 36 | i_units, 37 | i_size) 38 | SELECT c_last_name, 39 | c_first_name, 40 | s_store_name, 41 | Sum(netpaid) paid 42 | FROM ssales 43 | WHERE i_color = 'papaya' 44 | GROUP BY c_last_name, 45 | c_first_name, 46 | s_store_name 47 | HAVING Sum(netpaid) > (SELECT 0.05 * Avg(netpaid) 48 | FROM ssales); 49 | 50 | WITH ssales 51 | AS (SELECT c_last_name, 52 | c_first_name, 53 | s_store_name, 54 | ca_state, 55 | s_state, 56 | i_color, 57 | i_current_price, 58 | i_manager_id, 59 | i_units, 60 | i_size, 61 | Sum(ss_net_profit) netpaid 62 | FROM store_sales, 63 | store_returns, 64 | store, 65 | item, 66 | customer, 67 | customer_address 68 | WHERE ss_ticket_number = sr_ticket_number 69 | AND ss_item_sk = sr_item_sk 70 | AND ss_customer_sk = c_customer_sk 71 | AND ss_item_sk = i_item_sk 72 | AND ss_store_sk = s_store_sk 73 | AND c_birth_country = Upper(ca_country) 74 | AND s_zip = ca_zip 75 | AND s_market_id = 6 76 | GROUP BY c_last_name, 77 | c_first_name, 78 | s_store_name, 79 | ca_state, 80 | s_state, 81 | i_color, 82 | i_current_price, 83 | i_manager_id, 84 | i_units, 85 | i_size) 86 | SELECT c_last_name, 87 | c_first_name, 88 | s_store_name, 89 | Sum(netpaid) paid 90 | FROM ssales 91 | WHERE i_color = 'chartreuse' 92 | GROUP BY c_last_name, 93 | c_first_name, 94 | s_store_name 95 | HAVING Sum(netpaid) > (SELECT 0.05 * Avg(netpaid) 96 | FROM ssales); 97 | -------------------------------------------------------------------------------- /query25.sql: -------------------------------------------------------------------------------- 1 | -- start query 25 in stream 0 using template query25.tpl 2 | SELECT i_item_id, 3 | i_item_desc, 4 | s_store_id, 5 | s_store_name, 6 | Max(ss_net_profit) AS store_sales_profit, 7 | Max(sr_net_loss) AS store_returns_loss, 8 | Max(cs_net_profit) AS catalog_sales_profit 9 | FROM store_sales, 10 | store_returns, 11 | catalog_sales, 12 | date_dim d1, 13 | date_dim d2, 14 | date_dim d3, 15 | store, 16 | item 17 | WHERE d1.d_moy = 4 18 | AND d1.d_year = 2001 19 | AND d1.d_date_sk = ss_sold_date_sk 20 | AND i_item_sk = ss_item_sk 21 | AND s_store_sk = ss_store_sk 22 | AND ss_customer_sk = sr_customer_sk 23 | AND ss_item_sk = sr_item_sk 24 | AND ss_ticket_number = sr_ticket_number 25 | AND sr_returned_date_sk = d2.d_date_sk 26 | AND d2.d_moy BETWEEN 4 AND 10 27 | AND d2.d_year = 2001 28 | AND sr_customer_sk = cs_bill_customer_sk 29 | AND sr_item_sk = cs_item_sk 30 | AND cs_sold_date_sk = d3.d_date_sk 31 | AND d3.d_moy BETWEEN 4 AND 10 32 | AND d3.d_year = 2001 33 | GROUP BY i_item_id, 34 | i_item_desc, 35 | s_store_id, 36 | s_store_name 37 | ORDER BY i_item_id, 38 | i_item_desc, 39 | s_store_id, 40 | s_store_name 41 | LIMIT 100; 42 | -------------------------------------------------------------------------------- /query26.sql: -------------------------------------------------------------------------------- 1 | -- start query 26 in stream 0 using template query26.tpl 2 | SELECT i_item_id, 3 | Avg(cs_quantity) agg1, 4 | Avg(cs_list_price) agg2, 5 | Avg(cs_coupon_amt) agg3, 6 | Avg(cs_sales_price) agg4 7 | FROM catalog_sales, 8 | customer_demographics, 9 | date_dim, 10 | item, 11 | promotion 12 | WHERE cs_sold_date_sk = d_date_sk 13 | AND cs_item_sk = i_item_sk 14 | AND cs_bill_cdemo_sk = cd_demo_sk 15 | AND cs_promo_sk = p_promo_sk 16 | AND cd_gender = 'F' 17 | AND cd_marital_status = 'W' 18 | AND cd_education_status = 'Secondary' 19 | AND ( p_channel_email = 'N' 20 | OR p_channel_event = 'N' ) 21 | AND d_year = 2000 22 | GROUP BY i_item_id 23 | ORDER BY i_item_id 24 | LIMIT 100; 25 | -------------------------------------------------------------------------------- /query27.sql: -------------------------------------------------------------------------------- 1 | -- start query 27 in stream 0 using template query27.tpl 2 | SELECT i_item_id, 3 | s_state, 4 | Grouping(s_state) g_state, 5 | Avg(ss_quantity) agg1, 6 | Avg(ss_list_price) agg2, 7 | Avg(ss_coupon_amt) agg3, 8 | Avg(ss_sales_price) agg4 9 | FROM store_sales, 10 | customer_demographics, 11 | date_dim, 12 | store, 13 | item 14 | WHERE ss_sold_date_sk = d_date_sk 15 | AND ss_item_sk = i_item_sk 16 | AND ss_store_sk = s_store_sk 17 | AND ss_cdemo_sk = cd_demo_sk 18 | AND cd_gender = 'M' 19 | AND cd_marital_status = 'D' 20 | AND cd_education_status = 'College' 21 | AND d_year = 2000 22 | AND s_state IN ( 'TN', 'TN', 'TN', 'TN', 23 | 'TN', 'TN' ) 24 | GROUP BY rollup ( i_item_id, s_state ) 25 | ORDER BY i_item_id, 26 | s_state 27 | LIMIT 100; 28 | -------------------------------------------------------------------------------- /query28.sql: -------------------------------------------------------------------------------- 1 | -- start query 28 in stream 0 using template query28.tpl 2 | SELECT * 3 | FROM (SELECT Avg(ss_list_price) B1_LP, 4 | Count(ss_list_price) B1_CNT, 5 | Count(DISTINCT ss_list_price) B1_CNTD 6 | FROM store_sales 7 | WHERE ss_quantity BETWEEN 0 AND 5 8 | AND ( ss_list_price BETWEEN 18 AND 18 + 10 9 | OR ss_coupon_amt BETWEEN 1939 AND 1939 + 1000 10 | OR ss_wholesale_cost BETWEEN 34 AND 34 + 20 )) B1, 11 | (SELECT Avg(ss_list_price) B2_LP, 12 | Count(ss_list_price) B2_CNT, 13 | Count(DISTINCT ss_list_price) B2_CNTD 14 | FROM store_sales 15 | WHERE ss_quantity BETWEEN 6 AND 10 16 | AND ( ss_list_price BETWEEN 1 AND 1 + 10 17 | OR ss_coupon_amt BETWEEN 35 AND 35 + 1000 18 | OR ss_wholesale_cost BETWEEN 50 AND 50 + 20 )) B2, 19 | (SELECT Avg(ss_list_price) B3_LP, 20 | Count(ss_list_price) B3_CNT, 21 | Count(DISTINCT ss_list_price) B3_CNTD 22 | FROM store_sales 23 | WHERE ss_quantity BETWEEN 11 AND 15 24 | AND ( ss_list_price BETWEEN 91 AND 91 + 10 25 | OR ss_coupon_amt BETWEEN 1412 AND 1412 + 1000 26 | OR ss_wholesale_cost BETWEEN 17 AND 17 + 20 )) B3, 27 | (SELECT Avg(ss_list_price) B4_LP, 28 | Count(ss_list_price) B4_CNT, 29 | Count(DISTINCT ss_list_price) B4_CNTD 30 | FROM store_sales 31 | WHERE ss_quantity BETWEEN 16 AND 20 32 | AND ( ss_list_price BETWEEN 9 AND 9 + 10 33 | OR ss_coupon_amt BETWEEN 5270 AND 5270 + 1000 34 | OR ss_wholesale_cost BETWEEN 29 AND 29 + 20 )) B4, 35 | (SELECT Avg(ss_list_price) B5_LP, 36 | Count(ss_list_price) B5_CNT, 37 | Count(DISTINCT ss_list_price) B5_CNTD 38 | FROM store_sales 39 | WHERE ss_quantity BETWEEN 21 AND 25 40 | AND ( ss_list_price BETWEEN 45 AND 45 + 10 41 | OR ss_coupon_amt BETWEEN 826 AND 826 + 1000 42 | OR ss_wholesale_cost BETWEEN 5 AND 5 + 20 )) B5, 43 | (SELECT Avg(ss_list_price) B6_LP, 44 | Count(ss_list_price) B6_CNT, 45 | Count(DISTINCT ss_list_price) B6_CNTD 46 | FROM store_sales 47 | WHERE ss_quantity BETWEEN 26 AND 30 48 | AND ( ss_list_price BETWEEN 174 AND 174 + 10 49 | OR ss_coupon_amt BETWEEN 5548 AND 5548 + 1000 50 | OR ss_wholesale_cost BETWEEN 42 AND 42 + 20 )) B6 51 | LIMIT 100; 52 | -------------------------------------------------------------------------------- /query29.sql: -------------------------------------------------------------------------------- 1 | -- start query 29 in stream 0 using template query29.tpl 2 | SELECT i_item_id, 3 | i_item_desc, 4 | s_store_id, 5 | s_store_name, 6 | Avg(ss_quantity) AS store_sales_quantity, 7 | Avg(sr_return_quantity) AS store_returns_quantity, 8 | Avg(cs_quantity) AS catalog_sales_quantity 9 | FROM store_sales, 10 | store_returns, 11 | catalog_sales, 12 | date_dim d1, 13 | date_dim d2, 14 | date_dim d3, 15 | store, 16 | item 17 | WHERE d1.d_moy = 4 18 | AND d1.d_year = 1998 19 | AND d1.d_date_sk = ss_sold_date_sk 20 | AND i_item_sk = ss_item_sk 21 | AND s_store_sk = ss_store_sk 22 | AND ss_customer_sk = sr_customer_sk 23 | AND ss_item_sk = sr_item_sk 24 | AND ss_ticket_number = sr_ticket_number 25 | AND sr_returned_date_sk = d2.d_date_sk 26 | AND d2.d_moy BETWEEN 4 AND 4 + 3 27 | AND d2.d_year = 1998 28 | AND sr_customer_sk = cs_bill_customer_sk 29 | AND sr_item_sk = cs_item_sk 30 | AND cs_sold_date_sk = d3.d_date_sk 31 | AND d3.d_year IN ( 1998, 1998 + 1, 1998 + 2 ) 32 | GROUP BY i_item_id, 33 | i_item_desc, 34 | s_store_id, 35 | s_store_name 36 | ORDER BY i_item_id, 37 | i_item_desc, 38 | s_store_id, 39 | s_store_name 40 | LIMIT 100; 41 | -------------------------------------------------------------------------------- /query3.sql: -------------------------------------------------------------------------------- 1 | -- start query 3 in stream 0 using template query3.tpl 2 | SELECT dt.d_year, 3 | item.i_brand_id brand_id, 4 | item.i_brand brand, 5 | Sum(ss_ext_discount_amt) sum_agg 6 | FROM date_dim dt, 7 | store_sales, 8 | item 9 | WHERE dt.d_date_sk = store_sales.ss_sold_date_sk 10 | AND store_sales.ss_item_sk = item.i_item_sk 11 | AND item.i_manufact_id = 427 12 | AND dt.d_moy = 11 13 | GROUP BY dt.d_year, 14 | item.i_brand, 15 | item.i_brand_id 16 | ORDER BY dt.d_year, 17 | sum_agg DESC, 18 | brand_id 19 | LIMIT 100; 20 | -------------------------------------------------------------------------------- /query30.sql: -------------------------------------------------------------------------------- 1 | -- start query 30 in stream 0 using template query30.tpl 2 | WITH customer_total_return 3 | AS (SELECT wr_returning_customer_sk AS ctr_customer_sk, 4 | ca_state AS ctr_state, 5 | Sum(wr_return_amt) AS ctr_total_return 6 | FROM web_returns, 7 | date_dim, 8 | customer_address 9 | WHERE wr_returned_date_sk = d_date_sk 10 | AND d_year = 2000 11 | AND wr_returning_addr_sk = ca_address_sk 12 | GROUP BY wr_returning_customer_sk, 13 | ca_state) 14 | SELECT c_customer_id, 15 | c_salutation, 16 | c_first_name, 17 | c_last_name, 18 | c_preferred_cust_flag, 19 | c_birth_day, 20 | c_birth_month, 21 | c_birth_year, 22 | c_birth_country, 23 | c_login, 24 | c_email_address, 25 | c_last_review_date, 26 | ctr_total_return 27 | FROM customer_total_return ctr1, 28 | customer_address, 29 | customer 30 | WHERE ctr1.ctr_total_return > (SELECT Avg(ctr_total_return) * 1.2 31 | FROM customer_total_return ctr2 32 | WHERE ctr1.ctr_state = ctr2.ctr_state) 33 | AND ca_address_sk = c_current_addr_sk 34 | AND ca_state = 'IN' 35 | AND ctr1.ctr_customer_sk = c_customer_sk 36 | ORDER BY c_customer_id, 37 | c_salutation, 38 | c_first_name, 39 | c_last_name, 40 | c_preferred_cust_flag, 41 | c_birth_day, 42 | c_birth_month, 43 | c_birth_year, 44 | c_birth_country, 45 | c_login, 46 | c_email_address, 47 | c_last_review_date, 48 | ctr_total_return 49 | LIMIT 100; 50 | -------------------------------------------------------------------------------- /query31.sql: -------------------------------------------------------------------------------- 1 | -- start query 31 in stream 0 using template query31.tpl 2 | WITH ss 3 | AS (SELECT ca_county, 4 | d_qoy, 5 | d_year, 6 | Sum(ss_ext_sales_price) AS store_sales 7 | FROM store_sales, 8 | date_dim, 9 | customer_address 10 | WHERE ss_sold_date_sk = d_date_sk 11 | AND ss_addr_sk = ca_address_sk 12 | GROUP BY ca_county, 13 | d_qoy, 14 | d_year), 15 | ws 16 | AS (SELECT ca_county, 17 | d_qoy, 18 | d_year, 19 | Sum(ws_ext_sales_price) AS web_sales 20 | FROM web_sales, 21 | date_dim, 22 | customer_address 23 | WHERE ws_sold_date_sk = d_date_sk 24 | AND ws_bill_addr_sk = ca_address_sk 25 | GROUP BY ca_county, 26 | d_qoy, 27 | d_year) 28 | SELECT ss1.ca_county, 29 | ss1.d_year, 30 | ws2.web_sales / ws1.web_sales web_q1_q2_increase, 31 | ss2.store_sales / ss1.store_sales store_q1_q2_increase, 32 | ws3.web_sales / ws2.web_sales web_q2_q3_increase, 33 | ss3.store_sales / ss2.store_sales store_q2_q3_increase 34 | FROM ss ss1, 35 | ss ss2, 36 | ss ss3, 37 | ws ws1, 38 | ws ws2, 39 | ws ws3 40 | WHERE ss1.d_qoy = 1 41 | AND ss1.d_year = 2001 42 | AND ss1.ca_county = ss2.ca_county 43 | AND ss2.d_qoy = 2 44 | AND ss2.d_year = 2001 45 | AND ss2.ca_county = ss3.ca_county 46 | AND ss3.d_qoy = 3 47 | AND ss3.d_year = 2001 48 | AND ss1.ca_county = ws1.ca_county 49 | AND ws1.d_qoy = 1 50 | AND ws1.d_year = 2001 51 | AND ws1.ca_county = ws2.ca_county 52 | AND ws2.d_qoy = 2 53 | AND ws2.d_year = 2001 54 | AND ws1.ca_county = ws3.ca_county 55 | AND ws3.d_qoy = 3 56 | AND ws3.d_year = 2001 57 | AND CASE 58 | WHEN ws1.web_sales > 0 THEN ws2.web_sales / ws1.web_sales 59 | ELSE NULL 60 | END > CASE 61 | WHEN ss1.store_sales > 0 THEN 62 | ss2.store_sales / ss1.store_sales 63 | ELSE NULL 64 | END 65 | AND CASE 66 | WHEN ws2.web_sales > 0 THEN ws3.web_sales / ws2.web_sales 67 | ELSE NULL 68 | END > CASE 69 | WHEN ss2.store_sales > 0 THEN 70 | ss3.store_sales / ss2.store_sales 71 | ELSE NULL 72 | END 73 | ORDER BY ss1.d_year; 74 | -------------------------------------------------------------------------------- /query32.sql: -------------------------------------------------------------------------------- 1 | -- start query 32 in stream 0 using template query32.tpl 2 | SELECT 3 | Sum(cs_ext_discount_amt) AS `excess discount amount` 4 | FROM catalog_sales , 5 | item , 6 | date_dim 7 | WHERE i_manufact_id = 610 8 | AND i_item_sk = cs_item_sk 9 | AND d_date BETWEEN '2001-03-04' AND ( 10 | Cast('2001-03-04' AS DATE) + INTERVAL '90' day) 11 | AND d_date_sk = cs_sold_date_sk 12 | AND cs_ext_discount_amt > 13 | ( 14 | SELECT 1.3 * avg(cs_ext_discount_amt) 15 | FROM catalog_sales , 16 | date_dim 17 | WHERE cs_item_sk = i_item_sk 18 | AND d_date BETWEEN '2001-03-04' AND ( 19 | cast('2001-03-04' AS date) + INTERVAL '90' day) 20 | AND d_date_sk = cs_sold_date_sk ) 21 | LIMIT 100; 22 | 23 | -------------------------------------------------------------------------------- /query33.sql: -------------------------------------------------------------------------------- 1 | -- start query 33 in stream 0 using template query33.tpl 2 | WITH ss 3 | AS (SELECT i_manufact_id, 4 | Sum(ss_ext_sales_price) total_sales 5 | FROM store_sales, 6 | date_dim, 7 | customer_address, 8 | item 9 | WHERE i_manufact_id IN (SELECT i_manufact_id 10 | FROM item 11 | WHERE i_category IN ( 'Books' )) 12 | AND ss_item_sk = i_item_sk 13 | AND ss_sold_date_sk = d_date_sk 14 | AND d_year = 1999 15 | AND d_moy = 3 16 | AND ss_addr_sk = ca_address_sk 17 | AND ca_gmt_offset = -5 18 | GROUP BY i_manufact_id), 19 | cs 20 | AS (SELECT i_manufact_id, 21 | Sum(cs_ext_sales_price) total_sales 22 | FROM catalog_sales, 23 | date_dim, 24 | customer_address, 25 | item 26 | WHERE i_manufact_id IN (SELECT i_manufact_id 27 | FROM item 28 | WHERE i_category IN ( 'Books' )) 29 | AND cs_item_sk = i_item_sk 30 | AND cs_sold_date_sk = d_date_sk 31 | AND d_year = 1999 32 | AND d_moy = 3 33 | AND cs_bill_addr_sk = ca_address_sk 34 | AND ca_gmt_offset = -5 35 | GROUP BY i_manufact_id), 36 | ws 37 | AS (SELECT i_manufact_id, 38 | Sum(ws_ext_sales_price) total_sales 39 | FROM web_sales, 40 | date_dim, 41 | customer_address, 42 | item 43 | WHERE i_manufact_id IN (SELECT i_manufact_id 44 | FROM item 45 | WHERE i_category IN ( 'Books' )) 46 | AND ws_item_sk = i_item_sk 47 | AND ws_sold_date_sk = d_date_sk 48 | AND d_year = 1999 49 | AND d_moy = 3 50 | AND ws_bill_addr_sk = ca_address_sk 51 | AND ca_gmt_offset = -5 52 | GROUP BY i_manufact_id) 53 | SELECT i_manufact_id, 54 | Sum(total_sales) total_sales 55 | FROM (SELECT * 56 | FROM ss 57 | UNION ALL 58 | SELECT * 59 | FROM cs 60 | UNION ALL 61 | SELECT * 62 | FROM ws) tmp1 63 | GROUP BY i_manufact_id 64 | ORDER BY total_sales 65 | LIMIT 100; 66 | -------------------------------------------------------------------------------- /query34.sql: -------------------------------------------------------------------------------- 1 | -- start query 34 in stream 0 using template query34.tpl 2 | SELECT c_last_name, 3 | c_first_name, 4 | c_salutation, 5 | c_preferred_cust_flag, 6 | ss_ticket_number, 7 | cnt 8 | FROM (SELECT ss_ticket_number, 9 | ss_customer_sk, 10 | Count(*) cnt 11 | FROM store_sales, 12 | date_dim, 13 | store, 14 | household_demographics 15 | WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk 16 | AND store_sales.ss_store_sk = store.s_store_sk 17 | AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk 18 | AND ( date_dim.d_dom BETWEEN 1 AND 3 19 | OR date_dim.d_dom BETWEEN 25 AND 28 ) 20 | AND ( household_demographics.hd_buy_potential = '>10000' 21 | OR household_demographics.hd_buy_potential = 'unknown' ) 22 | AND household_demographics.hd_vehicle_count > 0 23 | AND ( CASE 24 | WHEN household_demographics.hd_vehicle_count > 0 THEN 25 | household_demographics.hd_dep_count / 26 | household_demographics.hd_vehicle_count 27 | ELSE NULL 28 | END ) > 1.2 29 | AND date_dim.d_year IN ( 1999, 1999 + 1, 1999 + 2 ) 30 | AND store.s_county IN ( 'Williamson County', 'Williamson County', 31 | 'Williamson County', 32 | 'Williamson County' 33 | , 34 | 'Williamson County', 'Williamson County', 35 | 'Williamson County', 36 | 'Williamson County' 37 | ) 38 | GROUP BY ss_ticket_number, 39 | ss_customer_sk) dn, 40 | customer 41 | WHERE ss_customer_sk = c_customer_sk 42 | AND cnt BETWEEN 15 AND 20 43 | ORDER BY c_last_name, 44 | c_first_name, 45 | c_salutation, 46 | c_preferred_cust_flag DESC; 47 | -------------------------------------------------------------------------------- /query35.sql: -------------------------------------------------------------------------------- 1 | -- start query 35 in stream 0 using template query35.tpl 2 | SELECT ca_state, 3 | cd_gender, 4 | cd_marital_status, 5 | cd_dep_count, 6 | Count(*) cnt1, 7 | Stddev_samp(cd_dep_count), 8 | Avg(cd_dep_count), 9 | Max(cd_dep_count), 10 | cd_dep_employed_count, 11 | Count(*) cnt2, 12 | Stddev_samp(cd_dep_employed_count), 13 | Avg(cd_dep_employed_count), 14 | Max(cd_dep_employed_count), 15 | cd_dep_college_count, 16 | Count(*) cnt3, 17 | Stddev_samp(cd_dep_college_count), 18 | Avg(cd_dep_college_count), 19 | Max(cd_dep_college_count) 20 | FROM customer c, 21 | customer_address ca, 22 | customer_demographics 23 | WHERE c.c_current_addr_sk = ca.ca_address_sk 24 | AND cd_demo_sk = c.c_current_cdemo_sk 25 | AND EXISTS (SELECT * 26 | FROM store_sales, 27 | date_dim 28 | WHERE c.c_customer_sk = ss_customer_sk 29 | AND ss_sold_date_sk = d_date_sk 30 | AND d_year = 2001 31 | AND d_qoy < 4) 32 | AND ( EXISTS (SELECT * 33 | FROM web_sales, 34 | date_dim 35 | WHERE c.c_customer_sk = ws_bill_customer_sk 36 | AND ws_sold_date_sk = d_date_sk 37 | AND d_year = 2001 38 | AND d_qoy < 4) 39 | OR EXISTS (SELECT * 40 | FROM catalog_sales, 41 | date_dim 42 | WHERE c.c_customer_sk = cs_ship_customer_sk 43 | AND cs_sold_date_sk = d_date_sk 44 | AND d_year = 2001 45 | AND d_qoy < 4) ) 46 | GROUP BY ca_state, 47 | cd_gender, 48 | cd_marital_status, 49 | cd_dep_count, 50 | cd_dep_employed_count, 51 | cd_dep_college_count 52 | ORDER BY ca_state, 53 | cd_gender, 54 | cd_marital_status, 55 | cd_dep_count, 56 | cd_dep_employed_count, 57 | cd_dep_college_count 58 | LIMIT 100; 59 | -------------------------------------------------------------------------------- /query36.sql: -------------------------------------------------------------------------------- 1 | -- start query 36 in stream 0 using template query36.tpl 2 | SELECT Sum(ss_net_profit) / Sum(ss_ext_sales_price) AS 3 | gross_margin, 4 | i_category, 5 | i_class, 6 | Grouping(i_category) + Grouping(i_class) AS 7 | lochierarchy, 8 | Rank() 9 | OVER ( 10 | partition BY Grouping(i_category)+Grouping(i_class), CASE 11 | WHEN Grouping( 12 | i_class) = 0 THEN i_category END 13 | ORDER BY Sum(ss_net_profit)/Sum(ss_ext_sales_price) ASC) AS 14 | rank_within_parent 15 | FROM store_sales, 16 | date_dim d1, 17 | item, 18 | store 19 | WHERE d1.d_year = 2000 20 | AND d1.d_date_sk = ss_sold_date_sk 21 | AND i_item_sk = ss_item_sk 22 | AND s_store_sk = ss_store_sk 23 | AND s_state IN ( 'TN', 'TN', 'TN', 'TN', 24 | 'TN', 'TN', 'TN', 'TN' ) 25 | GROUP BY rollup( i_category, i_class ) 26 | ORDER BY lochierarchy DESC, 27 | CASE 28 | WHEN lochierarchy = 0 THEN i_category 29 | END, 30 | rank_within_parent 31 | LIMIT 100; 32 | -------------------------------------------------------------------------------- /query37.sql: -------------------------------------------------------------------------------- 1 | -- start query 37 in stream 0 using template query37.tpl 2 | SELECT 3 | i_item_id , 4 | i_item_desc , 5 | i_current_price 6 | FROM item, 7 | inventory, 8 | date_dim, 9 | catalog_sales 10 | WHERE i_current_price BETWEEN 20 AND 20 + 30 11 | AND inv_item_sk = i_item_sk 12 | AND d_date_sk=inv_date_sk 13 | AND d_date BETWEEN Cast('1999-03-06' AS DATE) AND ( 14 | Cast('1999-03-06' AS DATE) + INTERVAL '60' day) 15 | AND i_manufact_id IN (843,815,850,840) 16 | AND inv_quantity_on_hand BETWEEN 100 AND 500 17 | AND cs_item_sk = i_item_sk 18 | GROUP BY i_item_id, 19 | i_item_desc, 20 | i_current_price 21 | ORDER BY i_item_id 22 | LIMIT 100; 23 | 24 | -------------------------------------------------------------------------------- /query38.sql: -------------------------------------------------------------------------------- 1 | -- start query 38 in stream 0 using template query38.tpl 2 | SELECT Count(*) 3 | FROM (SELECT DISTINCT c_last_name, 4 | c_first_name, 5 | d_date 6 | FROM store_sales, 7 | date_dim, 8 | customer 9 | WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk 10 | AND store_sales.ss_customer_sk = customer.c_customer_sk 11 | AND d_month_seq BETWEEN 1188 AND 1188 + 11 12 | INTERSECT 13 | SELECT DISTINCT c_last_name, 14 | c_first_name, 15 | d_date 16 | FROM catalog_sales, 17 | date_dim, 18 | customer 19 | WHERE catalog_sales.cs_sold_date_sk = date_dim.d_date_sk 20 | AND catalog_sales.cs_bill_customer_sk = customer.c_customer_sk 21 | AND d_month_seq BETWEEN 1188 AND 1188 + 11 22 | INTERSECT 23 | SELECT DISTINCT c_last_name, 24 | c_first_name, 25 | d_date 26 | FROM web_sales, 27 | date_dim, 28 | customer 29 | WHERE web_sales.ws_sold_date_sk = date_dim.d_date_sk 30 | AND web_sales.ws_bill_customer_sk = customer.c_customer_sk 31 | AND d_month_seq BETWEEN 1188 AND 1188 + 11) hot_cust 32 | LIMIT 100; 33 | -------------------------------------------------------------------------------- /query39.sql: -------------------------------------------------------------------------------- 1 | -- start query 39 in stream 0 using template query39.tpl 2 | WITH inv 3 | AS (SELECT w_warehouse_name, 4 | w_warehouse_sk, 5 | i_item_sk, 6 | d_moy, 7 | stdev, 8 | mean, 9 | CASE mean 10 | WHEN 0 THEN NULL 11 | ELSE stdev / mean 12 | END cov 13 | FROM (SELECT w_warehouse_name, 14 | w_warehouse_sk, 15 | i_item_sk, 16 | d_moy, 17 | Stddev_samp(inv_quantity_on_hand) stdev, 18 | Avg(inv_quantity_on_hand) mean 19 | FROM inventory, 20 | item, 21 | warehouse, 22 | date_dim 23 | WHERE inv_item_sk = i_item_sk 24 | AND inv_warehouse_sk = w_warehouse_sk 25 | AND inv_date_sk = d_date_sk 26 | AND d_year = 2002 27 | GROUP BY w_warehouse_name, 28 | w_warehouse_sk, 29 | i_item_sk, 30 | d_moy) foo 31 | WHERE CASE mean 32 | WHEN 0 THEN 0 33 | ELSE stdev / mean 34 | END > 1) 35 | SELECT inv1.w_warehouse_sk, 36 | inv1.i_item_sk, 37 | inv1.d_moy, 38 | inv1.mean, 39 | inv1.cov, 40 | inv2.w_warehouse_sk, 41 | inv2.i_item_sk, 42 | inv2.d_moy, 43 | inv2.mean, 44 | inv2.cov 45 | FROM inv inv1, 46 | inv inv2 47 | WHERE inv1.i_item_sk = inv2.i_item_sk 48 | AND inv1.w_warehouse_sk = inv2.w_warehouse_sk 49 | AND inv1.d_moy = 1 50 | AND inv2.d_moy = 1 + 1 51 | ORDER BY inv1.w_warehouse_sk, 52 | inv1.i_item_sk, 53 | inv1.d_moy, 54 | inv1.mean, 55 | inv1.cov, 56 | inv2.d_moy, 57 | inv2.mean, 58 | inv2.cov; 59 | 60 | WITH inv 61 | AS (SELECT w_warehouse_name, 62 | w_warehouse_sk, 63 | i_item_sk, 64 | d_moy, 65 | stdev, 66 | mean, 67 | CASE mean 68 | WHEN 0 THEN NULL 69 | ELSE stdev / mean 70 | END cov 71 | FROM (SELECT w_warehouse_name, 72 | w_warehouse_sk, 73 | i_item_sk, 74 | d_moy, 75 | Stddev_samp(inv_quantity_on_hand) stdev, 76 | Avg(inv_quantity_on_hand) mean 77 | FROM inventory, 78 | item, 79 | warehouse, 80 | date_dim 81 | WHERE inv_item_sk = i_item_sk 82 | AND inv_warehouse_sk = w_warehouse_sk 83 | AND inv_date_sk = d_date_sk 84 | AND d_year = 2002 85 | GROUP BY w_warehouse_name, 86 | w_warehouse_sk, 87 | i_item_sk, 88 | d_moy) foo 89 | WHERE CASE mean 90 | WHEN 0 THEN 0 91 | ELSE stdev / mean 92 | END > 1) 93 | SELECT inv1.w_warehouse_sk, 94 | inv1.i_item_sk, 95 | inv1.d_moy, 96 | inv1.mean, 97 | inv1.cov, 98 | inv2.w_warehouse_sk, 99 | inv2.i_item_sk, 100 | inv2.d_moy, 101 | inv2.mean, 102 | inv2.cov 103 | FROM inv inv1, 104 | inv inv2 105 | WHERE inv1.i_item_sk = inv2.i_item_sk 106 | AND inv1.w_warehouse_sk = inv2.w_warehouse_sk 107 | AND inv1.d_moy = 1 108 | AND inv2.d_moy = 1 + 1 109 | AND inv1.cov > 1.5 110 | ORDER BY inv1.w_warehouse_sk, 111 | inv1.i_item_sk, 112 | inv1.d_moy, 113 | inv1.mean, 114 | inv1.cov, 115 | inv2.d_moy, 116 | inv2.mean, 117 | inv2.cov; 118 | -------------------------------------------------------------------------------- /query40.sql: -------------------------------------------------------------------------------- 1 | -- start query 40 in stream 0 using template query40.tpl 2 | SELECT 3 | w_state , 4 | i_item_id , 5 | Sum( 6 | CASE 7 | WHEN ( 8 | Cast(d_date AS DATE) < Cast ('2002-06-01' AS DATE)) THEN cs_sales_price - COALESCE(cr_refunded_cash,0) 9 | ELSE 0 10 | END) AS sales_before , 11 | Sum( 12 | CASE 13 | WHEN ( 14 | Cast(d_date AS DATE) >= Cast ('2002-06-01' AS DATE)) THEN cs_sales_price - COALESCE(cr_refunded_cash,0) 15 | ELSE 0 16 | END) AS sales_after 17 | FROM catalog_sales 18 | LEFT OUTER JOIN catalog_returns 19 | ON ( 20 | cs_order_number = cr_order_number 21 | AND cs_item_sk = cr_item_sk) , 22 | warehouse , 23 | item , 24 | date_dim 25 | WHERE i_current_price BETWEEN 0.99 AND 1.49 26 | AND i_item_sk = cs_item_sk 27 | AND cs_warehouse_sk = w_warehouse_sk 28 | AND cs_sold_date_sk = d_date_sk 29 | AND d_date BETWEEN (Cast ('2002-06-01' AS DATE) - INTERVAL '30' day) AND ( 30 | cast ('2002-06-01' AS date) + INTERVAL '30' day) 31 | GROUP BY w_state, 32 | i_item_id 33 | ORDER BY w_state, 34 | i_item_id 35 | LIMIT 100; 36 | 37 | -------------------------------------------------------------------------------- /query41.sql: -------------------------------------------------------------------------------- 1 | -- start query 41 in stream 0 using template query41.tpl 2 | SELECT Distinct(i_product_name) 3 | FROM item i1 4 | WHERE i_manufact_id BETWEEN 765 AND 765 + 40 5 | AND (SELECT Count(*) AS item_cnt 6 | FROM item 7 | WHERE ( i_manufact = i1.i_manufact 8 | AND ( ( i_category = 'Women' 9 | AND ( i_color = 'dim' 10 | OR i_color = 'green' ) 11 | AND ( i_units = 'Gross' 12 | OR i_units = 'Dozen' ) 13 | AND ( i_size = 'economy' 14 | OR i_size = 'petite' ) ) 15 | OR ( i_category = 'Women' 16 | AND ( i_color = 'navajo' 17 | OR i_color = 'aquamarine' ) 18 | AND ( i_units = 'Case' 19 | OR i_units = 'Unknown' ) 20 | AND ( i_size = 'large' 21 | OR i_size = 'N/A' ) ) 22 | OR ( i_category = 'Men' 23 | AND ( i_color = 'indian' 24 | OR i_color = 'dark' ) 25 | AND ( i_units = 'Oz' 26 | OR i_units = 'Lb' ) 27 | AND ( i_size = 'extra large' 28 | OR i_size = 'small' ) ) 29 | OR ( i_category = 'Men' 30 | AND ( i_color = 'peach' 31 | OR i_color = 'purple' ) 32 | AND ( i_units = 'Tbl' 33 | OR i_units = 'Bunch' ) 34 | AND ( i_size = 'economy' 35 | OR i_size = 'petite' ) ) ) ) 36 | OR ( i_manufact = i1.i_manufact 37 | AND ( ( i_category = 'Women' 38 | AND ( i_color = 'orchid' 39 | OR i_color = 'peru' ) 40 | AND ( i_units = 'Carton' 41 | OR i_units = 'Cup' ) 42 | AND ( i_size = 'economy' 43 | OR i_size = 'petite' ) ) 44 | OR ( i_category = 'Women' 45 | AND ( i_color = 'violet' 46 | OR i_color = 'papaya' ) 47 | AND ( i_units = 'Ounce' 48 | OR i_units = 'Box' ) 49 | AND ( i_size = 'large' 50 | OR i_size = 'N/A' ) ) 51 | OR ( i_category = 'Men' 52 | AND ( i_color = 'drab' 53 | OR i_color = 'grey' ) 54 | AND ( i_units = 'Each' 55 | OR i_units = 'N/A' ) 56 | AND ( i_size = 'extra large' 57 | OR i_size = 'small' ) ) 58 | OR ( i_category = 'Men' 59 | AND ( i_color = 'chocolate' 60 | OR i_color = 'antique' ) 61 | AND ( i_units = 'Dram' 62 | OR i_units = 'Gram' ) 63 | AND ( i_size = 'economy' 64 | OR i_size = 'petite' ) ) ) )) > 0 65 | ORDER BY i_product_name 66 | LIMIT 100; 67 | -------------------------------------------------------------------------------- /query42.sql: -------------------------------------------------------------------------------- 1 | -- start query 42 in stream 0 using template query42.tpl 2 | SELECT dt.d_year, 3 | item.i_category_id, 4 | item.i_category, 5 | Sum(ss_ext_sales_price) 6 | FROM date_dim dt, 7 | store_sales, 8 | item 9 | WHERE dt.d_date_sk = store_sales.ss_sold_date_sk 10 | AND store_sales.ss_item_sk = item.i_item_sk 11 | AND item.i_manager_id = 1 12 | AND dt.d_moy = 12 13 | AND dt.d_year = 2000 14 | GROUP BY dt.d_year, 15 | item.i_category_id, 16 | item.i_category 17 | ORDER BY Sum(ss_ext_sales_price) DESC, 18 | dt.d_year, 19 | item.i_category_id, 20 | item.i_category 21 | LIMIT 100; 22 | -------------------------------------------------------------------------------- /query43.sql: -------------------------------------------------------------------------------- 1 | -- start query 43 in stream 0 using template query43.tpl 2 | SELECT s_store_name, 3 | s_store_id, 4 | Sum(CASE 5 | WHEN ( d_day_name = 'Sunday' ) THEN ss_sales_price 6 | ELSE NULL 7 | END) sun_sales, 8 | Sum(CASE 9 | WHEN ( d_day_name = 'Monday' ) THEN ss_sales_price 10 | ELSE NULL 11 | END) mon_sales, 12 | Sum(CASE 13 | WHEN ( d_day_name = 'Tuesday' ) THEN ss_sales_price 14 | ELSE NULL 15 | END) tue_sales, 16 | Sum(CASE 17 | WHEN ( d_day_name = 'Wednesday' ) THEN ss_sales_price 18 | ELSE NULL 19 | END) wed_sales, 20 | Sum(CASE 21 | WHEN ( d_day_name = 'Thursday' ) THEN ss_sales_price 22 | ELSE NULL 23 | END) thu_sales, 24 | Sum(CASE 25 | WHEN ( d_day_name = 'Friday' ) THEN ss_sales_price 26 | ELSE NULL 27 | END) fri_sales, 28 | Sum(CASE 29 | WHEN ( d_day_name = 'Saturday' ) THEN ss_sales_price 30 | ELSE NULL 31 | END) sat_sales 32 | FROM date_dim, 33 | store_sales, 34 | store 35 | WHERE d_date_sk = ss_sold_date_sk 36 | AND s_store_sk = ss_store_sk 37 | AND s_gmt_offset = -5 38 | AND d_year = 2002 39 | GROUP BY s_store_name, 40 | s_store_id 41 | ORDER BY s_store_name, 42 | s_store_id, 43 | sun_sales, 44 | mon_sales, 45 | tue_sales, 46 | wed_sales, 47 | thu_sales, 48 | fri_sales, 49 | sat_sales 50 | LIMIT 100; 51 | -------------------------------------------------------------------------------- /query44.sql: -------------------------------------------------------------------------------- 1 | -- start query 44 in stream 0 using template query44.tpl 2 | SELECT asceding.rnk, 3 | i1.i_product_name best_performing, 4 | i2.i_product_name worst_performing 5 | FROM (SELECT * 6 | FROM (SELECT item_sk, 7 | Rank() 8 | OVER ( 9 | ORDER BY rank_col ASC) rnk 10 | FROM (SELECT ss_item_sk item_sk, 11 | Avg(ss_net_profit) rank_col 12 | FROM store_sales ss1 13 | WHERE ss_store_sk = 4 14 | GROUP BY ss_item_sk 15 | HAVING Avg(ss_net_profit) > 0.9 * 16 | (SELECT Avg(ss_net_profit) 17 | rank_col 18 | FROM store_sales 19 | WHERE ss_store_sk = 4 20 | AND ss_cdemo_sk IS 21 | NULL 22 | GROUP BY ss_store_sk))V1) 23 | V11 24 | WHERE rnk < 11) asceding, 25 | (SELECT * 26 | FROM (SELECT item_sk, 27 | Rank() 28 | OVER ( 29 | ORDER BY rank_col DESC) rnk 30 | FROM (SELECT ss_item_sk item_sk, 31 | Avg(ss_net_profit) rank_col 32 | FROM store_sales ss1 33 | WHERE ss_store_sk = 4 34 | GROUP BY ss_item_sk 35 | HAVING Avg(ss_net_profit) > 0.9 * 36 | (SELECT Avg(ss_net_profit) 37 | rank_col 38 | FROM store_sales 39 | WHERE ss_store_sk = 4 40 | AND ss_cdemo_sk IS 41 | NULL 42 | GROUP BY ss_store_sk))V2) 43 | V21 44 | WHERE rnk < 11) descending, 45 | item i1, 46 | item i2 47 | WHERE asceding.rnk = descending.rnk 48 | AND i1.i_item_sk = asceding.item_sk 49 | AND i2.i_item_sk = descending.item_sk 50 | ORDER BY asceding.rnk 51 | LIMIT 100; 52 | -------------------------------------------------------------------------------- /query45.sql: -------------------------------------------------------------------------------- 1 | -- start query 45 in stream 0 using template query45.tpl 2 | SELECT ca_zip, 3 | ca_state, 4 | Sum(ws_sales_price) 5 | FROM web_sales, 6 | customer, 7 | customer_address, 8 | date_dim, 9 | item 10 | WHERE ws_bill_customer_sk = c_customer_sk 11 | AND c_current_addr_sk = ca_address_sk 12 | AND ws_item_sk = i_item_sk 13 | AND ( Substr(ca_zip, 1, 5) IN ( '85669', '86197', '88274', '83405', 14 | '86475', '85392', '85460', '80348', 15 | '81792' ) 16 | OR i_item_id IN (SELECT i_item_id 17 | FROM item 18 | WHERE i_item_sk IN ( 2, 3, 5, 7, 19 | 11, 13, 17, 19, 20 | 23, 29 )) ) 21 | AND ws_sold_date_sk = d_date_sk 22 | AND d_qoy = 1 23 | AND d_year = 2000 24 | GROUP BY ca_zip, 25 | ca_state 26 | ORDER BY ca_zip, 27 | ca_state 28 | LIMIT 100; 29 | -------------------------------------------------------------------------------- /query46.sql: -------------------------------------------------------------------------------- 1 | -- start query 46 in stream 0 using template query46.tpl 2 | SELECT c_last_name, 3 | c_first_name, 4 | ca_city, 5 | bought_city, 6 | ss_ticket_number, 7 | amt, 8 | profit 9 | FROM (SELECT ss_ticket_number, 10 | ss_customer_sk, 11 | ca_city bought_city, 12 | Sum(ss_coupon_amt) amt, 13 | Sum(ss_net_profit) profit 14 | FROM store_sales, 15 | date_dim, 16 | store, 17 | household_demographics, 18 | customer_address 19 | WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk 20 | AND store_sales.ss_store_sk = store.s_store_sk 21 | AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk 22 | AND store_sales.ss_addr_sk = customer_address.ca_address_sk 23 | AND ( household_demographics.hd_dep_count = 6 24 | OR household_demographics.hd_vehicle_count = 0 ) 25 | AND date_dim.d_dow IN ( 6, 0 ) 26 | AND date_dim.d_year IN ( 2000, 2000 + 1, 2000 + 2 ) 27 | AND store.s_city IN ( 'Midway', 'Fairview', 'Fairview', 28 | 'Fairview', 29 | 'Fairview' ) 30 | GROUP BY ss_ticket_number, 31 | ss_customer_sk, 32 | ss_addr_sk, 33 | ca_city) dn, 34 | customer, 35 | customer_address current_addr 36 | WHERE ss_customer_sk = c_customer_sk 37 | AND customer.c_current_addr_sk = current_addr.ca_address_sk 38 | AND current_addr.ca_city <> bought_city 39 | ORDER BY c_last_name, 40 | c_first_name, 41 | ca_city, 42 | bought_city, 43 | ss_ticket_number 44 | LIMIT 100; 45 | -------------------------------------------------------------------------------- /query47.sql: -------------------------------------------------------------------------------- 1 | -- start query 47 in stream 0 using template query47.tpl 2 | WITH v1 3 | AS (SELECT i_category, 4 | i_brand, 5 | s_store_name, 6 | s_company_name, 7 | d_year, 8 | d_moy, 9 | Sum(ss_sales_price) sum_sales, 10 | Avg(Sum(ss_sales_price)) 11 | OVER ( 12 | partition BY i_category, i_brand, s_store_name, 13 | s_company_name, 14 | d_year) 15 | avg_monthly_sales, 16 | Rank() 17 | OVER ( 18 | partition BY i_category, i_brand, s_store_name, 19 | s_company_name 20 | ORDER BY d_year, d_moy) rn 21 | FROM item, 22 | store_sales, 23 | date_dim, 24 | store 25 | WHERE ss_item_sk = i_item_sk 26 | AND ss_sold_date_sk = d_date_sk 27 | AND ss_store_sk = s_store_sk 28 | AND ( d_year = 1999 29 | OR ( d_year = 1999 - 1 30 | AND d_moy = 12 ) 31 | OR ( d_year = 1999 + 1 32 | AND d_moy = 1 ) ) 33 | GROUP BY i_category, 34 | i_brand, 35 | s_store_name, 36 | s_company_name, 37 | d_year, 38 | d_moy), 39 | v2 40 | AS (SELECT v1.i_category, 41 | v1.d_year, 42 | v1.d_moy, 43 | v1.avg_monthly_sales, 44 | v1.sum_sales, 45 | v1_lag.sum_sales psum, 46 | v1_lead.sum_sales nsum 47 | FROM v1, 48 | v1 v1_lag, 49 | v1 v1_lead 50 | WHERE v1.i_category = v1_lag.i_category 51 | AND v1.i_category = v1_lead.i_category 52 | AND v1.i_brand = v1_lag.i_brand 53 | AND v1.i_brand = v1_lead.i_brand 54 | AND v1.s_store_name = v1_lag.s_store_name 55 | AND v1.s_store_name = v1_lead.s_store_name 56 | AND v1.s_company_name = v1_lag.s_company_name 57 | AND v1.s_company_name = v1_lead.s_company_name 58 | AND v1.rn = v1_lag.rn + 1 59 | AND v1.rn = v1_lead.rn - 1) 60 | SELECT * 61 | FROM v2 62 | WHERE d_year = 1999 63 | AND avg_monthly_sales > 0 64 | AND CASE 65 | WHEN avg_monthly_sales > 0 THEN Abs(sum_sales - avg_monthly_sales) 66 | / 67 | avg_monthly_sales 68 | ELSE NULL 69 | END > 0.1 70 | ORDER BY sum_sales - avg_monthly_sales, 71 | 3 72 | LIMIT 100; 73 | -------------------------------------------------------------------------------- /query48.sql: -------------------------------------------------------------------------------- 1 | -- start query 48 in stream 0 using template query48.tpl 2 | SELECT Sum (ss_quantity) 3 | FROM store_sales, 4 | store, 5 | customer_demographics, 6 | customer_address, 7 | date_dim 8 | WHERE s_store_sk = ss_store_sk 9 | AND ss_sold_date_sk = d_date_sk 10 | AND d_year = 1999 11 | AND ( ( cd_demo_sk = ss_cdemo_sk 12 | AND cd_marital_status = 'W' 13 | AND cd_education_status = 'Secondary' 14 | AND ss_sales_price BETWEEN 100.00 AND 150.00 ) 15 | OR ( cd_demo_sk = ss_cdemo_sk 16 | AND cd_marital_status = 'M' 17 | AND cd_education_status = 'Advanced Degree' 18 | AND ss_sales_price BETWEEN 50.00 AND 100.00 ) 19 | OR ( cd_demo_sk = ss_cdemo_sk 20 | AND cd_marital_status = 'D' 21 | AND cd_education_status = '2 yr Degree' 22 | AND ss_sales_price BETWEEN 150.00 AND 200.00 ) ) 23 | AND ( ( ss_addr_sk = ca_address_sk 24 | AND ca_country = 'United States' 25 | AND ca_state IN ( 'TX', 'NE', 'MO' ) 26 | AND ss_net_profit BETWEEN 0 AND 2000 ) 27 | OR ( ss_addr_sk = ca_address_sk 28 | AND ca_country = 'United States' 29 | AND ca_state IN ( 'CO', 'TN', 'ND' ) 30 | AND ss_net_profit BETWEEN 150 AND 3000 ) 31 | OR ( ss_addr_sk = ca_address_sk 32 | AND ca_country = 'United States' 33 | AND ca_state IN ( 'OK', 'PA', 'CA' ) 34 | AND ss_net_profit BETWEEN 50 AND 25000 ) ); 35 | -------------------------------------------------------------------------------- /query49.sql: -------------------------------------------------------------------------------- 1 | -- start query 49 in stream 0 using template query49.tpl 2 | SELECT 'web' AS channel, 3 | web.item, 4 | web.return_ratio, 5 | web.return_rank, 6 | web.currency_rank 7 | FROM (SELECT item, 8 | return_ratio, 9 | currency_ratio, 10 | Rank() 11 | OVER ( 12 | ORDER BY return_ratio) AS return_rank, 13 | Rank() 14 | OVER ( 15 | ORDER BY currency_ratio) AS currency_rank 16 | FROM (SELECT ws.ws_item_sk AS 17 | item, 18 | ( Cast(Sum(COALESCE(wr.wr_return_quantity, 0)) AS DEC(15, 19 | 4)) / 20 | Cast( 21 | Sum(COALESCE(ws.ws_quantity, 0)) AS DEC(15, 4)) ) AS 22 | return_ratio, 23 | ( Cast(Sum(COALESCE(wr.wr_return_amt, 0)) AS DEC(15, 4)) 24 | / Cast( 25 | Sum( 26 | COALESCE(ws.ws_net_paid, 0)) AS DEC(15, 27 | 4)) ) AS 28 | currency_ratio 29 | FROM web_sales ws 30 | LEFT OUTER JOIN web_returns wr 31 | ON ( ws.ws_order_number = wr.wr_order_number 32 | AND ws.ws_item_sk = wr.wr_item_sk ), 33 | date_dim 34 | WHERE wr.wr_return_amt > 10000 35 | AND ws.ws_net_profit > 1 36 | AND ws.ws_net_paid > 0 37 | AND ws.ws_quantity > 0 38 | AND ws_sold_date_sk = d_date_sk 39 | AND d_year = 1999 40 | AND d_moy = 12 41 | GROUP BY ws.ws_item_sk) in_web) web 42 | WHERE ( web.return_rank <= 10 43 | OR web.currency_rank <= 10 ) 44 | UNION 45 | SELECT 'catalog' AS channel, 46 | catalog.item, 47 | catalog.return_ratio, 48 | catalog.return_rank, 49 | catalog.currency_rank 50 | FROM (SELECT item, 51 | return_ratio, 52 | currency_ratio, 53 | Rank() 54 | OVER ( 55 | ORDER BY return_ratio) AS return_rank, 56 | Rank() 57 | OVER ( 58 | ORDER BY currency_ratio) AS currency_rank 59 | FROM (SELECT cs.cs_item_sk AS 60 | item, 61 | ( Cast(Sum(COALESCE(cr.cr_return_quantity, 0)) AS DEC(15, 62 | 4)) / 63 | Cast( 64 | Sum(COALESCE(cs.cs_quantity, 0)) AS DEC(15, 4)) ) AS 65 | return_ratio, 66 | ( Cast(Sum(COALESCE(cr.cr_return_amount, 0)) AS DEC(15, 4 67 | )) / 68 | Cast(Sum( 69 | COALESCE(cs.cs_net_paid, 0)) AS DEC( 70 | 15, 4)) ) AS 71 | currency_ratio 72 | FROM catalog_sales cs 73 | LEFT OUTER JOIN catalog_returns cr 74 | ON ( cs.cs_order_number = cr.cr_order_number 75 | AND cs.cs_item_sk = cr.cr_item_sk ), 76 | date_dim 77 | WHERE cr.cr_return_amount > 10000 78 | AND cs.cs_net_profit > 1 79 | AND cs.cs_net_paid > 0 80 | AND cs.cs_quantity > 0 81 | AND cs_sold_date_sk = d_date_sk 82 | AND d_year = 1999 83 | AND d_moy = 12 84 | GROUP BY cs.cs_item_sk) in_cat) catalog 85 | WHERE ( catalog.return_rank <= 10 86 | OR catalog.currency_rank <= 10 ) 87 | UNION 88 | SELECT 'store' AS channel, 89 | store.item, 90 | store.return_ratio, 91 | store.return_rank, 92 | store.currency_rank 93 | FROM (SELECT item, 94 | return_ratio, 95 | currency_ratio, 96 | Rank() 97 | OVER ( 98 | ORDER BY return_ratio) AS return_rank, 99 | Rank() 100 | OVER ( 101 | ORDER BY currency_ratio) AS currency_rank 102 | FROM (SELECT sts.ss_item_sk AS 103 | item, 104 | ( Cast(Sum(COALESCE(sr.sr_return_quantity, 0)) AS DEC(15, 105 | 4)) / 106 | Cast( 107 | Sum(COALESCE(sts.ss_quantity, 0)) AS DEC(15, 4)) ) AS 108 | return_ratio, 109 | ( Cast(Sum(COALESCE(sr.sr_return_amt, 0)) AS DEC(15, 4)) 110 | / Cast( 111 | Sum( 112 | COALESCE(sts.ss_net_paid, 0)) AS DEC(15, 4)) ) AS 113 | currency_ratio 114 | FROM store_sales sts 115 | LEFT OUTER JOIN store_returns sr 116 | ON ( sts.ss_ticket_number = 117 | sr.sr_ticket_number 118 | AND sts.ss_item_sk = sr.sr_item_sk ), 119 | date_dim 120 | WHERE sr.sr_return_amt > 10000 121 | AND sts.ss_net_profit > 1 122 | AND sts.ss_net_paid > 0 123 | AND sts.ss_quantity > 0 124 | AND ss_sold_date_sk = d_date_sk 125 | AND d_year = 1999 126 | AND d_moy = 12 127 | GROUP BY sts.ss_item_sk) in_store) store 128 | WHERE ( store.return_rank <= 10 129 | OR store.currency_rank <= 10 ) 130 | ORDER BY 1, 131 | 4, 132 | 5 133 | LIMIT 100; 134 | -------------------------------------------------------------------------------- /query50.sql: -------------------------------------------------------------------------------- 1 | -- start query 50 in stream 0 using template query50.tpl 2 | SELECT s_store_name, 3 | s_company_id, 4 | s_street_number, 5 | s_street_name, 6 | s_street_type, 7 | s_suite_number, 8 | s_city, 9 | s_county, 10 | s_state, 11 | s_zip, 12 | Sum(CASE 13 | WHEN ( sr_returned_date_sk - ss_sold_date_sk <= 30 ) THEN 1 14 | ELSE 0 15 | END) AS `30 days`, 16 | Sum(CASE 17 | WHEN ( sr_returned_date_sk - ss_sold_date_sk > 30 ) 18 | AND ( sr_returned_date_sk - ss_sold_date_sk <= 60 ) 19 | THEN 1 20 | ELSE 0 21 | END) AS `31-60 days`, 22 | Sum(CASE 23 | WHEN ( sr_returned_date_sk - ss_sold_date_sk > 60 ) 24 | AND ( sr_returned_date_sk - ss_sold_date_sk <= 90 ) 25 | THEN 1 26 | ELSE 0 27 | END) AS `61-90 days`, 28 | Sum(CASE 29 | WHEN ( sr_returned_date_sk - ss_sold_date_sk > 90 ) 30 | AND ( sr_returned_date_sk - ss_sold_date_sk <= 120 ) 31 | THEN 1 32 | ELSE 0 33 | END) AS `91-120 days`, 34 | Sum(CASE 35 | WHEN ( sr_returned_date_sk - ss_sold_date_sk > 120 ) THEN 1 36 | ELSE 0 37 | END) AS `>120 days` 38 | FROM store_sales, 39 | store_returns, 40 | store, 41 | date_dim d1, 42 | date_dim d2 43 | WHERE d2.d_year = 2002 44 | AND d2.d_moy = 9 45 | AND ss_ticket_number = sr_ticket_number 46 | AND ss_item_sk = sr_item_sk 47 | AND ss_sold_date_sk = d1.d_date_sk 48 | AND sr_returned_date_sk = d2.d_date_sk 49 | AND ss_customer_sk = sr_customer_sk 50 | AND ss_store_sk = s_store_sk 51 | GROUP BY s_store_name, 52 | s_company_id, 53 | s_street_number, 54 | s_street_name, 55 | s_street_type, 56 | s_suite_number, 57 | s_city, 58 | s_county, 59 | s_state, 60 | s_zip 61 | ORDER BY s_store_name, 62 | s_company_id, 63 | s_street_number, 64 | s_street_name, 65 | s_street_type, 66 | s_suite_number, 67 | s_city, 68 | s_county, 69 | s_state, 70 | s_zip 71 | LIMIT 100; 72 | -------------------------------------------------------------------------------- /query51.sql: -------------------------------------------------------------------------------- 1 | -- start query 51 in stream 0 using template query51.tpl 2 | WITH web_v1 AS 3 | ( 4 | SELECT ws_item_sk item_sk, 5 | d_date, 6 | sum(Sum(ws_sales_price)) OVER (partition BY ws_item_sk ORDER BY d_date rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) cume_sales 7 | FROM web_sales , 8 | date_dim 9 | WHERE ws_sold_date_sk=d_date_sk 10 | AND d_month_seq BETWEEN 1192 AND 1192+11 11 | AND ws_item_sk IS NOT NULL 12 | GROUP BY ws_item_sk, 13 | d_date), store_v1 AS 14 | ( 15 | SELECT ss_item_sk item_sk, 16 | d_date, 17 | sum(sum(ss_sales_price)) OVER (partition BY ss_item_sk ORDER BY d_date rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) cume_sales 18 | FROM store_sales , 19 | date_dim 20 | WHERE ss_sold_date_sk=d_date_sk 21 | AND d_month_seq BETWEEN 1192 AND 1192+11 22 | AND ss_item_sk IS NOT NULL 23 | GROUP BY ss_item_sk, 24 | d_date) 25 | SELECT 26 | * 27 | FROM ( 28 | SELECT item_sk , 29 | d_date , 30 | web_sales , 31 | store_sales , 32 | max(web_sales) OVER (partition BY item_sk ORDER BY d_date rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) web_cumulative , 33 | max(store_sales) OVER (partition BY item_sk ORDER BY d_date rows BETWEEN UNBOUNDED PRECEDING AND CURRENT row) store_cumulative 34 | FROM ( 35 | SELECT 36 | CASE 37 | WHEN web.item_sk IS NOT NULL THEN web.item_sk 38 | ELSE store.item_sk 39 | END item_sk , 40 | CASE 41 | WHEN web.d_date IS NOT NULL THEN web.d_date 42 | ELSE store.d_date 43 | END d_date , 44 | web.cume_sales web_sales , 45 | store.cume_sales store_sales 46 | FROM web_v1 web 47 | FULL OUTER JOIN store_v1 store 48 | ON ( 49 | web.item_sk = store.item_sk 50 | AND web.d_date = store.d_date) )x )y 51 | WHERE web_cumulative > store_cumulative 52 | ORDER BY item_sk , 53 | d_date 54 | LIMIT 100; 55 | 56 | -------------------------------------------------------------------------------- /query52.sql: -------------------------------------------------------------------------------- 1 | -- start query 52 in stream 0 using template query52.tpl 2 | SELECT dt.d_year, 3 | item.i_brand_id brand_id, 4 | item.i_brand brand, 5 | Sum(ss_ext_sales_price) ext_price 6 | FROM date_dim dt, 7 | store_sales, 8 | item 9 | WHERE dt.d_date_sk = store_sales.ss_sold_date_sk 10 | AND store_sales.ss_item_sk = item.i_item_sk 11 | AND item.i_manager_id = 1 12 | AND dt.d_moy = 11 13 | AND dt.d_year = 1999 14 | GROUP BY dt.d_year, 15 | item.i_brand, 16 | item.i_brand_id 17 | ORDER BY dt.d_year, 18 | ext_price DESC, 19 | brand_id 20 | LIMIT 100; 21 | -------------------------------------------------------------------------------- /query53.sql: -------------------------------------------------------------------------------- 1 | -- start query 53 in stream 0 using template query53.tpl 2 | SELECT * 3 | FROM (SELECT i_manufact_id, 4 | Sum(ss_sales_price) sum_sales, 5 | Avg(Sum(ss_sales_price)) 6 | OVER ( 7 | partition BY i_manufact_id) avg_quarterly_sales 8 | FROM item, 9 | store_sales, 10 | date_dim, 11 | store 12 | WHERE ss_item_sk = i_item_sk 13 | AND ss_sold_date_sk = d_date_sk 14 | AND ss_store_sk = s_store_sk 15 | AND d_month_seq IN ( 1199, 1199 + 1, 1199 + 2, 1199 + 3, 16 | 1199 + 4, 1199 + 5, 1199 + 6, 1199 + 7, 17 | 1199 + 8, 1199 + 9, 1199 + 10, 1199 + 11 ) 18 | AND ( ( i_category IN ( 'Books', 'Children', 'Electronics' ) 19 | AND i_class IN ( 'personal', 'portable', 'reference', 20 | 'self-help' ) 21 | AND i_brand IN ( 'scholaramalgamalg #14', 22 | 'scholaramalgamalg #7' 23 | , 24 | 'exportiunivamalg #9', 25 | 'scholaramalgamalg #9' ) 26 | ) 27 | OR ( i_category IN ( 'Women', 'Music', 'Men' ) 28 | AND i_class IN ( 'accessories', 'classical', 29 | 'fragrances', 30 | 'pants' ) 31 | AND i_brand IN ( 'amalgimporto #1', 32 | 'edu packscholar #1', 33 | 'exportiimporto #1', 34 | 'importoamalg #1' ) ) ) 35 | GROUP BY i_manufact_id, 36 | d_qoy) tmp1 37 | WHERE CASE 38 | WHEN avg_quarterly_sales > 0 THEN Abs (sum_sales - avg_quarterly_sales) 39 | / 40 | avg_quarterly_sales 41 | ELSE NULL 42 | END > 0.1 43 | ORDER BY avg_quarterly_sales, 44 | sum_sales, 45 | i_manufact_id 46 | LIMIT 100; 47 | -------------------------------------------------------------------------------- /query54.sql: -------------------------------------------------------------------------------- 1 | -- start query 54 in stream 0 using template query54.tpl 2 | WITH my_customers 3 | AS (SELECT DISTINCT c_customer_sk, 4 | c_current_addr_sk 5 | FROM (SELECT cs_sold_date_sk sold_date_sk, 6 | cs_bill_customer_sk customer_sk, 7 | cs_item_sk item_sk 8 | FROM catalog_sales 9 | UNION ALL 10 | SELECT ws_sold_date_sk sold_date_sk, 11 | ws_bill_customer_sk customer_sk, 12 | ws_item_sk item_sk 13 | FROM web_sales) cs_or_ws_sales, 14 | item, 15 | date_dim, 16 | customer 17 | WHERE sold_date_sk = d_date_sk 18 | AND item_sk = i_item_sk 19 | AND i_category = 'Sports' 20 | AND i_class = 'fitness' 21 | AND c_customer_sk = cs_or_ws_sales.customer_sk 22 | AND d_moy = 5 23 | AND d_year = 2000), 24 | my_revenue 25 | AS (SELECT c_customer_sk, 26 | Sum(ss_ext_sales_price) AS revenue 27 | FROM my_customers, 28 | store_sales, 29 | customer_address, 30 | store, 31 | date_dim 32 | WHERE c_current_addr_sk = ca_address_sk 33 | AND ca_county = s_county 34 | AND ca_state = s_state 35 | AND ss_sold_date_sk = d_date_sk 36 | AND c_customer_sk = ss_customer_sk 37 | AND d_month_seq BETWEEN (SELECT DISTINCT d_month_seq + 1 38 | FROM date_dim 39 | WHERE d_year = 2000 40 | AND d_moy = 5) AND 41 | (SELECT DISTINCT 42 | d_month_seq + 3 43 | FROM date_dim 44 | WHERE d_year = 2000 45 | AND d_moy = 5) 46 | GROUP BY c_customer_sk), 47 | segments 48 | AS (SELECT Cast(( revenue / 50 ) AS INT) AS segment 49 | FROM my_revenue) 50 | SELECT segment, 51 | Count(*) AS num_customers, 52 | segment * 50 AS segment_base 53 | FROM segments 54 | GROUP BY segment 55 | ORDER BY segment, 56 | num_customers 57 | LIMIT 100; 58 | -------------------------------------------------------------------------------- /query55.sql: -------------------------------------------------------------------------------- 1 | -- start query 55 in stream 0 using template query55.tpl 2 | SELECT i_brand_id brand_id, 3 | i_brand brand, 4 | Sum(ss_ext_sales_price) ext_price 5 | FROM date_dim, 6 | store_sales, 7 | item 8 | WHERE d_date_sk = ss_sold_date_sk 9 | AND ss_item_sk = i_item_sk 10 | AND i_manager_id = 33 11 | AND d_moy = 12 12 | AND d_year = 1998 13 | GROUP BY i_brand, 14 | i_brand_id 15 | ORDER BY ext_price DESC, 16 | i_brand_id 17 | LIMIT 100; 18 | -------------------------------------------------------------------------------- /query56.sql: -------------------------------------------------------------------------------- 1 | -- start query 56 in stream 0 using template query56.tpl 2 | WITH ss 3 | AS (SELECT i_item_id, 4 | Sum(ss_ext_sales_price) total_sales 5 | FROM store_sales, 6 | date_dim, 7 | customer_address, 8 | item 9 | WHERE i_item_id IN (SELECT i_item_id 10 | FROM item 11 | WHERE i_color IN ( 'firebrick', 'rosy', 'white' ) 12 | ) 13 | AND ss_item_sk = i_item_sk 14 | AND ss_sold_date_sk = d_date_sk 15 | AND d_year = 1998 16 | AND d_moy = 3 17 | AND ss_addr_sk = ca_address_sk 18 | AND ca_gmt_offset = -6 19 | GROUP BY i_item_id), 20 | cs 21 | AS (SELECT i_item_id, 22 | Sum(cs_ext_sales_price) total_sales 23 | FROM catalog_sales, 24 | date_dim, 25 | customer_address, 26 | item 27 | WHERE i_item_id IN (SELECT i_item_id 28 | FROM item 29 | WHERE i_color IN ( 'firebrick', 'rosy', 'white' ) 30 | ) 31 | AND cs_item_sk = i_item_sk 32 | AND cs_sold_date_sk = d_date_sk 33 | AND d_year = 1998 34 | AND d_moy = 3 35 | AND cs_bill_addr_sk = ca_address_sk 36 | AND ca_gmt_offset = -6 37 | GROUP BY i_item_id), 38 | ws 39 | AS (SELECT i_item_id, 40 | Sum(ws_ext_sales_price) total_sales 41 | FROM web_sales, 42 | date_dim, 43 | customer_address, 44 | item 45 | WHERE i_item_id IN (SELECT i_item_id 46 | FROM item 47 | WHERE i_color IN ( 'firebrick', 'rosy', 'white' ) 48 | ) 49 | AND ws_item_sk = i_item_sk 50 | AND ws_sold_date_sk = d_date_sk 51 | AND d_year = 1998 52 | AND d_moy = 3 53 | AND ws_bill_addr_sk = ca_address_sk 54 | AND ca_gmt_offset = -6 55 | GROUP BY i_item_id) 56 | SELECT i_item_id, 57 | Sum(total_sales) total_sales 58 | FROM (SELECT * 59 | FROM ss 60 | UNION ALL 61 | SELECT * 62 | FROM cs 63 | UNION ALL 64 | SELECT * 65 | FROM ws) tmp1 66 | GROUP BY i_item_id 67 | ORDER BY total_sales 68 | LIMIT 100; 69 | -------------------------------------------------------------------------------- /query57.sql: -------------------------------------------------------------------------------- 1 | -- start query 57 in stream 0 using template query57.tpl 2 | WITH v1 3 | AS (SELECT i_category, 4 | i_brand, 5 | cc_name, 6 | d_year, 7 | d_moy, 8 | Sum(cs_sales_price) sum_sales 9 | , 10 | Avg(Sum(cs_sales_price)) 11 | OVER ( 12 | partition BY i_category, i_brand, cc_name, d_year) 13 | avg_monthly_sales 14 | , 15 | Rank() 16 | OVER ( 17 | partition BY i_category, i_brand, cc_name 18 | ORDER BY d_year, d_moy) rn 19 | FROM item, 20 | catalog_sales, 21 | date_dim, 22 | call_center 23 | WHERE cs_item_sk = i_item_sk 24 | AND cs_sold_date_sk = d_date_sk 25 | AND cc_call_center_sk = cs_call_center_sk 26 | AND ( d_year = 2000 27 | OR ( d_year = 2000 - 1 28 | AND d_moy = 12 ) 29 | OR ( d_year = 2000 + 1 30 | AND d_moy = 1 ) ) 31 | GROUP BY i_category, 32 | i_brand, 33 | cc_name, 34 | d_year, 35 | d_moy), 36 | v2 37 | AS (SELECT v1.i_brand, 38 | v1.d_year, 39 | v1.avg_monthly_sales, 40 | v1.sum_sales, 41 | v1_lag.sum_sales psum, 42 | v1_lead.sum_sales nsum 43 | FROM v1, 44 | v1 v1_lag, 45 | v1 v1_lead 46 | WHERE v1.i_category = v1_lag.i_category 47 | AND v1.i_category = v1_lead.i_category 48 | AND v1.i_brand = v1_lag.i_brand 49 | AND v1.i_brand = v1_lead.i_brand 50 | AND v1. cc_name = v1_lag. cc_name 51 | AND v1. cc_name = v1_lead. cc_name 52 | AND v1.rn = v1_lag.rn + 1 53 | AND v1.rn = v1_lead.rn - 1) 54 | SELECT * 55 | FROM v2 56 | WHERE d_year = 2000 57 | AND avg_monthly_sales > 0 58 | AND CASE 59 | WHEN avg_monthly_sales > 0 THEN Abs(sum_sales - avg_monthly_sales) 60 | / 61 | avg_monthly_sales 62 | ELSE NULL 63 | END > 0.1 64 | ORDER BY sum_sales - avg_monthly_sales, 65 | 3 66 | LIMIT 100; 67 | -------------------------------------------------------------------------------- /query58.sql: -------------------------------------------------------------------------------- 1 | -- start query 58 in stream 0 using template query58.tpl 2 | WITH ss_items 3 | AS (SELECT i_item_id item_id, 4 | Sum(ss_ext_sales_price) ss_item_rev 5 | FROM store_sales, 6 | item, 7 | date_dim 8 | WHERE ss_item_sk = i_item_sk 9 | AND d_date IN (SELECT d_date 10 | FROM date_dim 11 | WHERE d_week_seq = (SELECT d_week_seq 12 | FROM date_dim 13 | WHERE d_date = '2002-02-25' 14 | )) 15 | AND ss_sold_date_sk = d_date_sk 16 | GROUP BY i_item_id), 17 | cs_items 18 | AS (SELECT i_item_id item_id, 19 | Sum(cs_ext_sales_price) cs_item_rev 20 | FROM catalog_sales, 21 | item, 22 | date_dim 23 | WHERE cs_item_sk = i_item_sk 24 | AND d_date IN (SELECT d_date 25 | FROM date_dim 26 | WHERE d_week_seq = (SELECT d_week_seq 27 | FROM date_dim 28 | WHERE d_date = '2002-02-25' 29 | )) 30 | AND cs_sold_date_sk = d_date_sk 31 | GROUP BY i_item_id), 32 | ws_items 33 | AS (SELECT i_item_id item_id, 34 | Sum(ws_ext_sales_price) ws_item_rev 35 | FROM web_sales, 36 | item, 37 | date_dim 38 | WHERE ws_item_sk = i_item_sk 39 | AND d_date IN (SELECT d_date 40 | FROM date_dim 41 | WHERE d_week_seq = (SELECT d_week_seq 42 | FROM date_dim 43 | WHERE d_date = '2002-02-25' 44 | )) 45 | AND ws_sold_date_sk = d_date_sk 46 | GROUP BY i_item_id) 47 | SELECT ss_items.item_id, 48 | ss_item_rev, 49 | ss_item_rev / ( ss_item_rev + cs_item_rev + ws_item_rev ) / 3 * 50 | 100 ss_dev, 51 | cs_item_rev, 52 | cs_item_rev / ( ss_item_rev + cs_item_rev + ws_item_rev ) / 3 * 53 | 100 cs_dev, 54 | ws_item_rev, 55 | ws_item_rev / ( ss_item_rev + cs_item_rev + ws_item_rev ) / 3 * 56 | 100 ws_dev, 57 | ( ss_item_rev + cs_item_rev + ws_item_rev ) / 3 58 | average 59 | FROM ss_items, 60 | cs_items, 61 | ws_items 62 | WHERE ss_items.item_id = cs_items.item_id 63 | AND ss_items.item_id = ws_items.item_id 64 | AND ss_item_rev BETWEEN 0.9 * cs_item_rev AND 1.1 * cs_item_rev 65 | AND ss_item_rev BETWEEN 0.9 * ws_item_rev AND 1.1 * ws_item_rev 66 | AND cs_item_rev BETWEEN 0.9 * ss_item_rev AND 1.1 * ss_item_rev 67 | AND cs_item_rev BETWEEN 0.9 * ws_item_rev AND 1.1 * ws_item_rev 68 | AND ws_item_rev BETWEEN 0.9 * ss_item_rev AND 1.1 * ss_item_rev 69 | AND ws_item_rev BETWEEN 0.9 * cs_item_rev AND 1.1 * cs_item_rev 70 | ORDER BY item_id, 71 | ss_item_rev 72 | LIMIT 100; 73 | -------------------------------------------------------------------------------- /query59.sql: -------------------------------------------------------------------------------- 1 | -- start query 59 in stream 0 using template query59.tpl 2 | WITH wss 3 | AS (SELECT d_week_seq, 4 | ss_store_sk, 5 | Sum(CASE 6 | WHEN ( d_day_name = 'Sunday' ) THEN ss_sales_price 7 | ELSE NULL 8 | END) sun_sales, 9 | Sum(CASE 10 | WHEN ( d_day_name = 'Monday' ) THEN ss_sales_price 11 | ELSE NULL 12 | END) mon_sales, 13 | Sum(CASE 14 | WHEN ( d_day_name = 'Tuesday' ) THEN ss_sales_price 15 | ELSE NULL 16 | END) tue_sales, 17 | Sum(CASE 18 | WHEN ( d_day_name = 'Wednesday' ) THEN ss_sales_price 19 | ELSE NULL 20 | END) wed_sales, 21 | Sum(CASE 22 | WHEN ( d_day_name = 'Thursday' ) THEN ss_sales_price 23 | ELSE NULL 24 | END) thu_sales, 25 | Sum(CASE 26 | WHEN ( d_day_name = 'Friday' ) THEN ss_sales_price 27 | ELSE NULL 28 | END) fri_sales, 29 | Sum(CASE 30 | WHEN ( d_day_name = 'Saturday' ) THEN ss_sales_price 31 | ELSE NULL 32 | END) sat_sales 33 | FROM store_sales, 34 | date_dim 35 | WHERE d_date_sk = ss_sold_date_sk 36 | GROUP BY d_week_seq, 37 | ss_store_sk) 38 | SELECT s_store_name1, 39 | s_store_id1, 40 | d_week_seq1, 41 | sun_sales1 / sun_sales2, 42 | mon_sales1 / mon_sales2, 43 | tue_sales1 / tue_sales2, 44 | wed_sales1 / wed_sales2, 45 | thu_sales1 / thu_sales2, 46 | fri_sales1 / fri_sales2, 47 | sat_sales1 / sat_sales2 48 | FROM (SELECT s_store_name s_store_name1, 49 | wss.d_week_seq d_week_seq1, 50 | s_store_id s_store_id1, 51 | sun_sales sun_sales1, 52 | mon_sales mon_sales1, 53 | tue_sales tue_sales1, 54 | wed_sales wed_sales1, 55 | thu_sales thu_sales1, 56 | fri_sales fri_sales1, 57 | sat_sales sat_sales1 58 | FROM wss, 59 | store, 60 | date_dim d 61 | WHERE d.d_week_seq = wss.d_week_seq 62 | AND ss_store_sk = s_store_sk 63 | AND d_month_seq BETWEEN 1196 AND 1196 + 11) y, 64 | (SELECT s_store_name s_store_name2, 65 | wss.d_week_seq d_week_seq2, 66 | s_store_id s_store_id2, 67 | sun_sales sun_sales2, 68 | mon_sales mon_sales2, 69 | tue_sales tue_sales2, 70 | wed_sales wed_sales2, 71 | thu_sales thu_sales2, 72 | fri_sales fri_sales2, 73 | sat_sales sat_sales2 74 | FROM wss, 75 | store, 76 | date_dim d 77 | WHERE d.d_week_seq = wss.d_week_seq 78 | AND ss_store_sk = s_store_sk 79 | AND d_month_seq BETWEEN 1196 + 12 AND 1196 + 23) x 80 | WHERE s_store_id1 = s_store_id2 81 | AND d_week_seq1 = d_week_seq2 - 52 82 | ORDER BY s_store_name1, 83 | s_store_id1, 84 | d_week_seq1 85 | LIMIT 100; 86 | -------------------------------------------------------------------------------- /query6.sql: -------------------------------------------------------------------------------- 1 | -- start query 6 in stream 0 using template query6.tpl 2 | SELECT a.ca_state state, 3 | Count(*) cnt 4 | FROM customer_address a, 5 | customer c, 6 | store_sales s, 7 | date_dim d, 8 | item i 9 | WHERE a.ca_address_sk = c.c_current_addr_sk 10 | AND c.c_customer_sk = s.ss_customer_sk 11 | AND s.ss_sold_date_sk = d.d_date_sk 12 | AND s.ss_item_sk = i.i_item_sk 13 | AND d.d_month_seq = (SELECT DISTINCT ( d_month_seq ) 14 | FROM date_dim 15 | WHERE d_year = 1998 16 | AND d_moy = 7) 17 | AND i.i_current_price > 1.2 * (SELECT Avg(j.i_current_price) 18 | FROM item j 19 | WHERE j.i_category = i.i_category) 20 | GROUP BY a.ca_state 21 | HAVING Count(*) >= 10 22 | ORDER BY cnt 23 | LIMIT 100; 24 | -------------------------------------------------------------------------------- /query60.sql: -------------------------------------------------------------------------------- 1 | -- start query 60 in stream 0 using template query60.tpl 2 | WITH ss 3 | AS (SELECT i_item_id, 4 | Sum(ss_ext_sales_price) total_sales 5 | FROM store_sales, 6 | date_dim, 7 | customer_address, 8 | item 9 | WHERE i_item_id IN (SELECT i_item_id 10 | FROM item 11 | WHERE i_category IN ( 'Jewelry' )) 12 | AND ss_item_sk = i_item_sk 13 | AND ss_sold_date_sk = d_date_sk 14 | AND d_year = 1999 15 | AND d_moy = 8 16 | AND ss_addr_sk = ca_address_sk 17 | AND ca_gmt_offset = -6 18 | GROUP BY i_item_id), 19 | cs 20 | AS (SELECT i_item_id, 21 | Sum(cs_ext_sales_price) total_sales 22 | FROM catalog_sales, 23 | date_dim, 24 | customer_address, 25 | item 26 | WHERE i_item_id IN (SELECT i_item_id 27 | FROM item 28 | WHERE i_category IN ( 'Jewelry' )) 29 | AND cs_item_sk = i_item_sk 30 | AND cs_sold_date_sk = d_date_sk 31 | AND d_year = 1999 32 | AND d_moy = 8 33 | AND cs_bill_addr_sk = ca_address_sk 34 | AND ca_gmt_offset = -6 35 | GROUP BY i_item_id), 36 | ws 37 | AS (SELECT i_item_id, 38 | Sum(ws_ext_sales_price) total_sales 39 | FROM web_sales, 40 | date_dim, 41 | customer_address, 42 | item 43 | WHERE i_item_id IN (SELECT i_item_id 44 | FROM item 45 | WHERE i_category IN ( 'Jewelry' )) 46 | AND ws_item_sk = i_item_sk 47 | AND ws_sold_date_sk = d_date_sk 48 | AND d_year = 1999 49 | AND d_moy = 8 50 | AND ws_bill_addr_sk = ca_address_sk 51 | AND ca_gmt_offset = -6 52 | GROUP BY i_item_id) 53 | SELECT i_item_id, 54 | Sum(total_sales) total_sales 55 | FROM (SELECT * 56 | FROM ss 57 | UNION ALL 58 | SELECT * 59 | FROM cs 60 | UNION ALL 61 | SELECT * 62 | FROM ws) tmp1 63 | GROUP BY i_item_id 64 | ORDER BY i_item_id, 65 | total_sales 66 | LIMIT 100; 67 | -------------------------------------------------------------------------------- /query61.sql: -------------------------------------------------------------------------------- 1 | -- start query 61 in stream 0 using template query61.tpl 2 | SELECT promotions, 3 | total, 4 | Cast(promotions AS DECIMAL(15, 4)) / 5 | Cast(total AS DECIMAL(15, 4)) * 100 6 | FROM (SELECT Sum(ss_ext_sales_price) promotions 7 | FROM store_sales, 8 | store, 9 | promotion, 10 | date_dim, 11 | customer, 12 | customer_address, 13 | item 14 | WHERE ss_sold_date_sk = d_date_sk 15 | AND ss_store_sk = s_store_sk 16 | AND ss_promo_sk = p_promo_sk 17 | AND ss_customer_sk = c_customer_sk 18 | AND ca_address_sk = c_current_addr_sk 19 | AND ss_item_sk = i_item_sk 20 | AND ca_gmt_offset = -7 21 | AND i_category = 'Books' 22 | AND ( p_channel_dmail = 'Y' 23 | OR p_channel_email = 'Y' 24 | OR p_channel_tv = 'Y' ) 25 | AND s_gmt_offset = -7 26 | AND d_year = 2001 27 | AND d_moy = 12) promotional_sales, 28 | (SELECT Sum(ss_ext_sales_price) total 29 | FROM store_sales, 30 | store, 31 | date_dim, 32 | customer, 33 | customer_address, 34 | item 35 | WHERE ss_sold_date_sk = d_date_sk 36 | AND ss_store_sk = s_store_sk 37 | AND ss_customer_sk = c_customer_sk 38 | AND ca_address_sk = c_current_addr_sk 39 | AND ss_item_sk = i_item_sk 40 | AND ca_gmt_offset = -7 41 | AND i_category = 'Books' 42 | AND s_gmt_offset = -7 43 | AND d_year = 2001 44 | AND d_moy = 12) all_sales 45 | ORDER BY promotions, 46 | total 47 | LIMIT 100; 48 | -------------------------------------------------------------------------------- /query62.sql: -------------------------------------------------------------------------------- 1 | -- start query 62 in stream 0 using template query62.tpl 2 | SELECT Substr(w_warehouse_name, 1, 20), 3 | sm_type, 4 | web_name, 5 | Sum(CASE 6 | WHEN ( ws_ship_date_sk - ws_sold_date_sk <= 30 ) THEN 1 7 | ELSE 0 8 | END) AS `30 days`, 9 | Sum(CASE 10 | WHEN ( ws_ship_date_sk - ws_sold_date_sk > 30 ) 11 | AND ( ws_ship_date_sk - ws_sold_date_sk <= 60 ) THEN 1 12 | ELSE 0 13 | END) AS `31-60 days`, 14 | Sum(CASE 15 | WHEN ( ws_ship_date_sk - ws_sold_date_sk > 60 ) 16 | AND ( ws_ship_date_sk - ws_sold_date_sk <= 90 ) THEN 1 17 | ELSE 0 18 | END) AS `61-90 days`, 19 | Sum(CASE 20 | WHEN ( ws_ship_date_sk - ws_sold_date_sk > 90 ) 21 | AND ( ws_ship_date_sk - ws_sold_date_sk <= 120 ) THEN 22 | 1 23 | ELSE 0 24 | END) AS `91-120 days`, 25 | Sum(CASE 26 | WHEN ( ws_ship_date_sk - ws_sold_date_sk > 120 ) THEN 1 27 | ELSE 0 28 | END) AS `>120 days` 29 | FROM web_sales, 30 | warehouse, 31 | ship_mode, 32 | web_site, 33 | date_dim 34 | WHERE d_month_seq BETWEEN 1222 AND 1222 + 11 35 | AND ws_ship_date_sk = d_date_sk 36 | AND ws_warehouse_sk = w_warehouse_sk 37 | AND ws_ship_mode_sk = sm_ship_mode_sk 38 | AND ws_web_site_sk = web_site_sk 39 | GROUP BY Substr(w_warehouse_name, 1, 20), 40 | sm_type, 41 | web_name 42 | ORDER BY Substr(w_warehouse_name, 1, 20), 43 | sm_type, 44 | web_name 45 | LIMIT 100; 46 | -------------------------------------------------------------------------------- /query63.sql: -------------------------------------------------------------------------------- 1 | -- start query 63 in stream 0 using template query63.tpl 2 | SELECT * 3 | FROM (SELECT i_manager_id, 4 | Sum(ss_sales_price) sum_sales, 5 | Avg(Sum(ss_sales_price)) 6 | OVER ( 7 | partition BY i_manager_id) avg_monthly_sales 8 | FROM item, 9 | store_sales, 10 | date_dim, 11 | store 12 | WHERE ss_item_sk = i_item_sk 13 | AND ss_sold_date_sk = d_date_sk 14 | AND ss_store_sk = s_store_sk 15 | AND d_month_seq IN ( 1200, 1200 + 1, 1200 + 2, 1200 + 3, 16 | 1200 + 4, 1200 + 5, 1200 + 6, 1200 + 7, 17 | 1200 + 8, 1200 + 9, 1200 + 10, 1200 + 11 ) 18 | AND ( ( i_category IN ( 'Books', 'Children', 'Electronics' ) 19 | AND i_class IN ( 'personal', 'portable', 'reference', 20 | 'self-help' ) 21 | AND i_brand IN ( 'scholaramalgamalg #14', 22 | 'scholaramalgamalg #7' 23 | , 24 | 'exportiunivamalg #9', 25 | 'scholaramalgamalg #9' ) 26 | ) 27 | OR ( i_category IN ( 'Women', 'Music', 'Men' ) 28 | AND i_class IN ( 'accessories', 'classical', 29 | 'fragrances', 30 | 'pants' ) 31 | AND i_brand IN ( 'amalgimporto #1', 32 | 'edu packscholar #1', 33 | 'exportiimporto #1', 34 | 'importoamalg #1' ) ) ) 35 | GROUP BY i_manager_id, 36 | d_moy) tmp1 37 | WHERE CASE 38 | WHEN avg_monthly_sales > 0 THEN Abs (sum_sales - avg_monthly_sales) / 39 | avg_monthly_sales 40 | ELSE NULL 41 | END > 0.1 42 | ORDER BY i_manager_id, 43 | avg_monthly_sales, 44 | sum_sales 45 | LIMIT 100; 46 | -------------------------------------------------------------------------------- /query64.sql: -------------------------------------------------------------------------------- 1 | -- start query 64 in stream 0 using template query64.tpl 2 | WITH cs_ui 3 | AS (SELECT cs_item_sk, 4 | Sum(cs_ext_list_price) AS sale, 5 | Sum(cr_refunded_cash + cr_reversed_charge 6 | + cr_store_credit) AS refund 7 | FROM catalog_sales, 8 | catalog_returns 9 | WHERE cs_item_sk = cr_item_sk 10 | AND cs_order_number = cr_order_number 11 | GROUP BY cs_item_sk 12 | HAVING Sum(cs_ext_list_price) > 2 * Sum( 13 | cr_refunded_cash + cr_reversed_charge 14 | + cr_store_credit)), 15 | cross_sales 16 | AS (SELECT i_product_name product_name, 17 | i_item_sk item_sk, 18 | s_store_name store_name, 19 | s_zip store_zip, 20 | ad1.ca_street_number b_street_number, 21 | ad1.ca_street_name b_streen_name, 22 | ad1.ca_city b_city, 23 | ad1.ca_zip b_zip, 24 | ad2.ca_street_number c_street_number, 25 | ad2.ca_street_name c_street_name, 26 | ad2.ca_city c_city, 27 | ad2.ca_zip c_zip, 28 | d1.d_year AS syear, 29 | d2.d_year AS fsyear, 30 | d3.d_year s2year, 31 | Count(*) cnt, 32 | Sum(ss_wholesale_cost) s1, 33 | Sum(ss_list_price) s2, 34 | Sum(ss_coupon_amt) s3 35 | FROM store_sales, 36 | store_returns, 37 | cs_ui, 38 | date_dim d1, 39 | date_dim d2, 40 | date_dim d3, 41 | store, 42 | customer, 43 | customer_demographics cd1, 44 | customer_demographics cd2, 45 | promotion, 46 | household_demographics hd1, 47 | household_demographics hd2, 48 | customer_address ad1, 49 | customer_address ad2, 50 | income_band ib1, 51 | income_band ib2, 52 | item 53 | WHERE ss_store_sk = s_store_sk 54 | AND ss_sold_date_sk = d1.d_date_sk 55 | AND ss_customer_sk = c_customer_sk 56 | AND ss_cdemo_sk = cd1.cd_demo_sk 57 | AND ss_hdemo_sk = hd1.hd_demo_sk 58 | AND ss_addr_sk = ad1.ca_address_sk 59 | AND ss_item_sk = i_item_sk 60 | AND ss_item_sk = sr_item_sk 61 | AND ss_ticket_number = sr_ticket_number 62 | AND ss_item_sk = cs_ui.cs_item_sk 63 | AND c_current_cdemo_sk = cd2.cd_demo_sk 64 | AND c_current_hdemo_sk = hd2.hd_demo_sk 65 | AND c_current_addr_sk = ad2.ca_address_sk 66 | AND c_first_sales_date_sk = d2.d_date_sk 67 | AND c_first_shipto_date_sk = d3.d_date_sk 68 | AND ss_promo_sk = p_promo_sk 69 | AND hd1.hd_income_band_sk = ib1.ib_income_band_sk 70 | AND hd2.hd_income_band_sk = ib2.ib_income_band_sk 71 | AND cd1.cd_marital_status <> cd2.cd_marital_status 72 | AND i_color IN ( 'cyan', 'peach', 'blush', 'frosted', 73 | 'powder', 'orange' ) 74 | AND i_current_price BETWEEN 58 AND 58 + 10 75 | AND i_current_price BETWEEN 58 + 1 AND 58 + 15 76 | GROUP BY i_product_name, 77 | i_item_sk, 78 | s_store_name, 79 | s_zip, 80 | ad1.ca_street_number, 81 | ad1.ca_street_name, 82 | ad1.ca_city, 83 | ad1.ca_zip, 84 | ad2.ca_street_number, 85 | ad2.ca_street_name, 86 | ad2.ca_city, 87 | ad2.ca_zip, 88 | d1.d_year, 89 | d2.d_year, 90 | d3.d_year) 91 | SELECT cs1.product_name, 92 | cs1.store_name, 93 | cs1.store_zip, 94 | cs1.b_street_number, 95 | cs1.b_streen_name, 96 | cs1.b_city, 97 | cs1.b_zip, 98 | cs1.c_street_number, 99 | cs1.c_street_name, 100 | cs1.c_city, 101 | cs1.c_zip, 102 | cs1.syear, 103 | cs1.cnt, 104 | cs1.s1, 105 | cs1.s2, 106 | cs1.s3, 107 | cs2.s1, 108 | cs2.s2, 109 | cs2.s3, 110 | cs2.syear, 111 | cs2.cnt 112 | FROM cross_sales cs1, 113 | cross_sales cs2 114 | WHERE cs1.item_sk = cs2.item_sk 115 | AND cs1.syear = 2001 116 | AND cs2.syear = 2001 + 1 117 | AND cs2.cnt <= cs1.cnt 118 | AND cs1.store_name = cs2.store_name 119 | AND cs1.store_zip = cs2.store_zip 120 | ORDER BY cs1.product_name, 121 | cs1.store_name, 122 | cs2.cnt; 123 | -------------------------------------------------------------------------------- /query65.sql: -------------------------------------------------------------------------------- 1 | -- start query 65 in stream 0 using template query65.tpl 2 | SELECT s_store_name, 3 | i_item_desc, 4 | sc.revenue, 5 | i_current_price, 6 | i_wholesale_cost, 7 | i_brand 8 | FROM store, 9 | item, 10 | (SELECT ss_store_sk, 11 | Avg(revenue) AS ave 12 | FROM (SELECT ss_store_sk, 13 | ss_item_sk, 14 | Sum(ss_sales_price) AS revenue 15 | FROM store_sales, 16 | date_dim 17 | WHERE ss_sold_date_sk = d_date_sk 18 | AND d_month_seq BETWEEN 1199 AND 1199 + 11 19 | GROUP BY ss_store_sk, 20 | ss_item_sk) sa 21 | GROUP BY ss_store_sk) sb, 22 | (SELECT ss_store_sk, 23 | ss_item_sk, 24 | Sum(ss_sales_price) AS revenue 25 | FROM store_sales, 26 | date_dim 27 | WHERE ss_sold_date_sk = d_date_sk 28 | AND d_month_seq BETWEEN 1199 AND 1199 + 11 29 | GROUP BY ss_store_sk, 30 | ss_item_sk) sc 31 | WHERE sb.ss_store_sk = sc.ss_store_sk 32 | AND sc.revenue <= 0.1 * sb.ave 33 | AND s_store_sk = sc.ss_store_sk 34 | AND i_item_sk = sc.ss_item_sk 35 | ORDER BY s_store_name, 36 | i_item_desc 37 | LIMIT 100; 38 | -------------------------------------------------------------------------------- /query67.sql: -------------------------------------------------------------------------------- 1 | -- start query 67 in stream 0 using template query67.tpl 2 | select top 100 * 3 | from (select i_category 4 | ,i_class 5 | ,i_brand 6 | ,i_product_name 7 | ,d_year 8 | ,d_qoy 9 | ,d_moy 10 | ,s_store_id 11 | ,sumsales 12 | ,rank() over (partition by i_category order by sumsales desc) rk 13 | from (select i_category 14 | ,i_class 15 | ,i_brand 16 | ,i_product_name 17 | ,d_year 18 | ,d_qoy 19 | ,d_moy 20 | ,s_store_id 21 | ,sum(coalesce(ss_sales_price*ss_quantity,0)) sumsales 22 | from store_sales 23 | ,date_dim 24 | ,store 25 | ,item 26 | where ss_sold_date_sk=d_date_sk 27 | and ss_item_sk=i_item_sk 28 | and ss_store_sk = s_store_sk 29 | and d_month_seq between 1181 and 1181+11 30 | group by rollup(i_category, i_class, i_brand, i_product_name, d_year, d_qoy, d_moy,s_store_id))dw1) dw2 31 | where rk <= 100 32 | order by i_category 33 | ,i_class 34 | ,i_brand 35 | ,i_product_name 36 | ,d_year 37 | ,d_qoy 38 | ,d_moy 39 | ,s_store_id 40 | ,sumsales 41 | ,rk 42 | ; 43 | 44 | -------------------------------------------------------------------------------- /query68.sql: -------------------------------------------------------------------------------- 1 | -- start query 68 in stream 0 using template query68.tpl 2 | SELECT c_last_name, 3 | c_first_name, 4 | ca_city, 5 | bought_city, 6 | ss_ticket_number, 7 | extended_price, 8 | extended_tax, 9 | list_price 10 | FROM (SELECT ss_ticket_number, 11 | ss_customer_sk, 12 | ca_city bought_city, 13 | Sum(ss_ext_sales_price) extended_price, 14 | Sum(ss_ext_list_price) list_price, 15 | Sum(ss_ext_tax) extended_tax 16 | FROM store_sales, 17 | date_dim, 18 | store, 19 | household_demographics, 20 | customer_address 21 | WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk 22 | AND store_sales.ss_store_sk = store.s_store_sk 23 | AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk 24 | AND store_sales.ss_addr_sk = customer_address.ca_address_sk 25 | AND date_dim.d_dom BETWEEN 1 AND 2 26 | AND ( household_demographics.hd_dep_count = 8 27 | OR household_demographics.hd_vehicle_count = 3 ) 28 | AND date_dim.d_year IN ( 1998, 1998 + 1, 1998 + 2 ) 29 | AND store.s_city IN ( 'Fairview', 'Midway' ) 30 | GROUP BY ss_ticket_number, 31 | ss_customer_sk, 32 | ss_addr_sk, 33 | ca_city) dn, 34 | customer, 35 | customer_address current_addr 36 | WHERE ss_customer_sk = c_customer_sk 37 | AND customer.c_current_addr_sk = current_addr.ca_address_sk 38 | AND current_addr.ca_city <> bought_city 39 | ORDER BY c_last_name, 40 | ss_ticket_number 41 | LIMIT 100; 42 | -------------------------------------------------------------------------------- /query69.sql: -------------------------------------------------------------------------------- 1 | SELECT cd_gender, 2 | cd_marital_status, 3 | cd_education_status, 4 | Count(*) cnt1, 5 | cd_purchase_estimate, 6 | Count(*) cnt2, 7 | cd_credit_rating, 8 | Count(*) cnt3 9 | FROM customer c, 10 | customer_address ca, 11 | customer_demographics 12 | WHERE c.c_current_addr_sk = ca.ca_address_sk 13 | AND ca_state IN ( 'KS', 'AZ', 'NE' ) 14 | AND cd_demo_sk = c.c_current_cdemo_sk 15 | AND EXISTS (SELECT * 16 | FROM store_sales, 17 | date_dim 18 | WHERE c.c_customer_sk = ss_customer_sk 19 | AND ss_sold_date_sk = d_date_sk 20 | AND d_year = 2004 21 | AND d_moy BETWEEN 3 AND 3 + 2) 22 | AND ( NOT EXISTS (SELECT * 23 | FROM web_sales, 24 | date_dim 25 | WHERE c.c_customer_sk = ws_bill_customer_sk 26 | AND ws_sold_date_sk = d_date_sk 27 | AND d_year = 2004 28 | AND d_moy BETWEEN 3 AND 3 + 2) 29 | AND NOT EXISTS (SELECT * 30 | FROM catalog_sales, 31 | date_dim 32 | WHERE c.c_customer_sk = cs_ship_customer_sk 33 | AND cs_sold_date_sk = d_date_sk 34 | AND d_year = 2004 35 | AND d_moy BETWEEN 3 AND 3 + 2) ) 36 | GROUP BY cd_gender, 37 | cd_marital_status, 38 | cd_education_status, 39 | cd_purchase_estimate, 40 | cd_credit_rating 41 | ORDER BY cd_gender, 42 | cd_marital_status, 43 | cd_education_status, 44 | cd_purchase_estimate, 45 | cd_credit_rating 46 | LIMIT 100; 47 | -------------------------------------------------------------------------------- /query7.sql: -------------------------------------------------------------------------------- 1 | -- start query 7 in stream 0 using template query7.tpl 2 | SELECT i_item_id, 3 | Avg(ss_quantity) agg1, 4 | Avg(ss_list_price) agg2, 5 | Avg(ss_coupon_amt) agg3, 6 | Avg(ss_sales_price) agg4 7 | FROM store_sales, 8 | customer_demographics, 9 | date_dim, 10 | item, 11 | promotion 12 | WHERE ss_sold_date_sk = d_date_sk 13 | AND ss_item_sk = i_item_sk 14 | AND ss_cdemo_sk = cd_demo_sk 15 | AND ss_promo_sk = p_promo_sk 16 | AND cd_gender = 'F' 17 | AND cd_marital_status = 'W' 18 | AND cd_education_status = '2 yr Degree' 19 | AND ( p_channel_email = 'N' 20 | OR p_channel_event = 'N' ) 21 | AND d_year = 1998 22 | GROUP BY i_item_id 23 | ORDER BY i_item_id 24 | LIMIT 100; 25 | -------------------------------------------------------------------------------- /query70.sql: -------------------------------------------------------------------------------- 1 | -- start query 70 in stream 0 using template query70.tpl 2 | SELECT Sum(ss_net_profit) AS total_sum, 3 | s_state, 4 | s_county, 5 | Grouping(s_state) + Grouping(s_county) AS lochierarchy, 6 | Rank() 7 | OVER ( 8 | partition BY Grouping(s_state)+Grouping(s_county), CASE WHEN 9 | Grouping( 10 | s_county) = 0 THEN s_state END 11 | ORDER BY Sum(ss_net_profit) DESC) AS rank_within_parent 12 | FROM store_sales, 13 | date_dim d1, 14 | store 15 | WHERE d1.d_month_seq BETWEEN 1200 AND 1200 + 11 16 | AND d1.d_date_sk = ss_sold_date_sk 17 | AND s_store_sk = ss_store_sk 18 | AND s_state IN (SELECT s_state 19 | FROM (SELECT s_state AS 20 | s_state, 21 | Rank() 22 | OVER ( 23 | partition BY s_state 24 | ORDER BY Sum(ss_net_profit) DESC) AS 25 | ranking 26 | FROM store_sales, 27 | store, 28 | date_dim 29 | WHERE d_month_seq BETWEEN 1200 AND 1200 + 11 30 | AND d_date_sk = ss_sold_date_sk 31 | AND s_store_sk = ss_store_sk 32 | GROUP BY s_state) tmp1 33 | WHERE ranking <= 5) 34 | GROUP BY rollup( s_state, s_county ) 35 | ORDER BY lochierarchy DESC, 36 | CASE 37 | WHEN lochierarchy = 0 THEN s_state 38 | END, 39 | rank_within_parent 40 | LIMIT 100; 41 | -------------------------------------------------------------------------------- /query71.sql: -------------------------------------------------------------------------------- 1 | -- start query 71 in stream 0 using template query71.tpl 2 | SELECT i_brand_id brand_id, 3 | i_brand brand, 4 | t_hour, 5 | t_minute, 6 | Sum(ext_price) ext_price 7 | FROM item, 8 | (SELECT ws_ext_sales_price AS ext_price, 9 | ws_sold_date_sk AS sold_date_sk, 10 | ws_item_sk AS sold_item_sk, 11 | ws_sold_time_sk AS time_sk 12 | FROM web_sales, 13 | date_dim 14 | WHERE d_date_sk = ws_sold_date_sk 15 | AND d_moy = 11 16 | AND d_year = 2001 17 | UNION ALL 18 | SELECT cs_ext_sales_price AS ext_price, 19 | cs_sold_date_sk AS sold_date_sk, 20 | cs_item_sk AS sold_item_sk, 21 | cs_sold_time_sk AS time_sk 22 | FROM catalog_sales, 23 | date_dim 24 | WHERE d_date_sk = cs_sold_date_sk 25 | AND d_moy = 11 26 | AND d_year = 2001 27 | UNION ALL 28 | SELECT ss_ext_sales_price AS ext_price, 29 | ss_sold_date_sk AS sold_date_sk, 30 | ss_item_sk AS sold_item_sk, 31 | ss_sold_time_sk AS time_sk 32 | FROM store_sales, 33 | date_dim 34 | WHERE d_date_sk = ss_sold_date_sk 35 | AND d_moy = 11 36 | AND d_year = 2001) AS tmp, 37 | time_dim 38 | WHERE sold_item_sk = i_item_sk 39 | AND i_manager_id = 1 40 | AND time_sk = t_time_sk 41 | AND ( t_meal_time = 'breakfast' 42 | OR t_meal_time = 'dinner' ) 43 | GROUP BY i_brand, 44 | i_brand_id, 45 | t_hour, 46 | t_minute 47 | ORDER BY ext_price DESC, 48 | i_brand_id; 49 | -------------------------------------------------------------------------------- /query72.sql: -------------------------------------------------------------------------------- 1 | -- start query 72 in stream 0 using template query72.tpl 2 | SELECT i_item_desc, 3 | w_warehouse_name, 4 | d1.d_week_seq, 5 | Sum(CASE 6 | WHEN p_promo_sk IS NULL THEN 1 7 | ELSE 0 8 | END) no_promo, 9 | Sum(CASE 10 | WHEN p_promo_sk IS NOT NULL THEN 1 11 | ELSE 0 12 | END) promo, 13 | Count(*) total_cnt 14 | FROM catalog_sales 15 | JOIN inventory 16 | ON ( cs_item_sk = inv_item_sk ) 17 | JOIN warehouse 18 | ON ( w_warehouse_sk = inv_warehouse_sk ) 19 | JOIN item 20 | ON ( i_item_sk = cs_item_sk ) 21 | JOIN customer_demographics 22 | ON ( cs_bill_cdemo_sk = cd_demo_sk ) 23 | JOIN household_demographics 24 | ON ( cs_bill_hdemo_sk = hd_demo_sk ) 25 | JOIN date_dim d1 26 | ON ( cs_sold_date_sk = d1.d_date_sk ) 27 | JOIN date_dim d2 28 | ON ( inv_date_sk = d2.d_date_sk ) 29 | JOIN date_dim d3 30 | ON ( cs_ship_date_sk = d3.d_date_sk ) 31 | LEFT OUTER JOIN promotion 32 | ON ( cs_promo_sk = p_promo_sk ) 33 | LEFT OUTER JOIN catalog_returns 34 | ON ( cr_item_sk = cs_item_sk 35 | AND cr_order_number = cs_order_number ) 36 | WHERE d1.d_week_seq = d2.d_week_seq 37 | AND inv_quantity_on_hand < cs_quantity 38 | AND d3.d_date > d1.d_date + INTERVAL '5' day 39 | AND hd_buy_potential = '501-1000' 40 | AND d1.d_year = 2002 41 | AND cd_marital_status = 'M' 42 | GROUP BY i_item_desc, 43 | w_warehouse_name, 44 | d1.d_week_seq 45 | ORDER BY total_cnt DESC, 46 | i_item_desc, 47 | w_warehouse_name, 48 | d_week_seq 49 | LIMIT 100; 50 | -------------------------------------------------------------------------------- /query73.sql: -------------------------------------------------------------------------------- 1 | -- start query 73 in stream 0 using template query73.tpl 2 | SELECT c_last_name, 3 | c_first_name, 4 | c_salutation, 5 | c_preferred_cust_flag, 6 | ss_ticket_number, 7 | cnt 8 | FROM (SELECT ss_ticket_number, 9 | ss_customer_sk, 10 | Count(*) cnt 11 | FROM store_sales, 12 | date_dim, 13 | store, 14 | household_demographics 15 | WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk 16 | AND store_sales.ss_store_sk = store.s_store_sk 17 | AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk 18 | AND date_dim.d_dom BETWEEN 1 AND 2 19 | AND ( household_demographics.hd_buy_potential = '>10000' 20 | OR household_demographics.hd_buy_potential = '0-500' ) 21 | AND household_demographics.hd_vehicle_count > 0 22 | AND CASE 23 | WHEN household_demographics.hd_vehicle_count > 0 THEN 24 | household_demographics.hd_dep_count / 25 | household_demographics.hd_vehicle_count 26 | ELSE NULL 27 | END > 1 28 | AND date_dim.d_year IN ( 2000, 2000 + 1, 2000 + 2 ) 29 | AND store.s_county IN ( 'Williamson County', 'Williamson County', 30 | 'Williamson County', 31 | 'Williamson County' 32 | ) 33 | GROUP BY ss_ticket_number, 34 | ss_customer_sk) dj, 35 | customer 36 | WHERE ss_customer_sk = c_customer_sk 37 | AND cnt BETWEEN 1 AND 5 38 | ORDER BY cnt DESC, 39 | c_last_name ASC; 40 | -------------------------------------------------------------------------------- /query74.sql: -------------------------------------------------------------------------------- 1 | -- start query 74 in stream 0 using template query74.tpl 2 | WITH year_total 3 | AS (SELECT c_customer_id customer_id, 4 | c_first_name customer_first_name, 5 | c_last_name customer_last_name, 6 | d_year AS year1, 7 | Sum(ss_net_paid) year_total, 8 | 's' sale_type 9 | FROM customer, 10 | store_sales, 11 | date_dim 12 | WHERE c_customer_sk = ss_customer_sk 13 | AND ss_sold_date_sk = d_date_sk 14 | AND d_year IN ( 1999, 1999 + 1 ) 15 | GROUP BY c_customer_id, 16 | c_first_name, 17 | c_last_name, 18 | d_year 19 | UNION ALL 20 | SELECT c_customer_id customer_id, 21 | c_first_name customer_first_name, 22 | c_last_name customer_last_name, 23 | d_year AS year1, 24 | Sum(ws_net_paid) year_total, 25 | 'w' sale_type 26 | FROM customer, 27 | web_sales, 28 | date_dim 29 | WHERE c_customer_sk = ws_bill_customer_sk 30 | AND ws_sold_date_sk = d_date_sk 31 | AND d_year IN ( 1999, 1999 + 1 ) 32 | GROUP BY c_customer_id, 33 | c_first_name, 34 | c_last_name, 35 | d_year) 36 | SELECT t_s_secyear.customer_id, 37 | t_s_secyear.customer_first_name, 38 | t_s_secyear.customer_last_name 39 | FROM year_total t_s_firstyear, 40 | year_total t_s_secyear, 41 | year_total t_w_firstyear, 42 | year_total t_w_secyear 43 | WHERE t_s_secyear.customer_id = t_s_firstyear.customer_id 44 | AND t_s_firstyear.customer_id = t_w_secyear.customer_id 45 | AND t_s_firstyear.customer_id = t_w_firstyear.customer_id 46 | AND t_s_firstyear.sale_type = 's' 47 | AND t_w_firstyear.sale_type = 'w' 48 | AND t_s_secyear.sale_type = 's' 49 | AND t_w_secyear.sale_type = 'w' 50 | AND t_s_firstyear.year1 = 1999 51 | AND t_s_secyear.year1 = 1999 + 1 52 | AND t_w_firstyear.year1 = 1999 53 | AND t_w_secyear.year1 = 1999 + 1 54 | AND t_s_firstyear.year_total > 0 55 | AND t_w_firstyear.year_total > 0 56 | AND CASE 57 | WHEN t_w_firstyear.year_total > 0 THEN t_w_secyear.year_total / 58 | t_w_firstyear.year_total 59 | ELSE NULL 60 | END > CASE 61 | WHEN t_s_firstyear.year_total > 0 THEN 62 | t_s_secyear.year_total / 63 | t_s_firstyear.year_total 64 | ELSE NULL 65 | END 66 | ORDER BY 1, 67 | 2, 68 | 3 69 | LIMIT 100; 70 | -------------------------------------------------------------------------------- /query75.sql: -------------------------------------------------------------------------------- 1 | -- start query 75 in stream 0 using template query75.tpl 2 | WITH all_sales 3 | AS (SELECT d_year, 4 | i_brand_id, 5 | i_class_id, 6 | i_category_id, 7 | i_manufact_id, 8 | Sum(sales_cnt) AS sales_cnt, 9 | Sum(sales_amt) AS sales_amt 10 | FROM (SELECT d_year, 11 | i_brand_id, 12 | i_class_id, 13 | i_category_id, 14 | i_manufact_id, 15 | cs_quantity - COALESCE(cr_return_quantity, 0) AS 16 | sales_cnt, 17 | cs_ext_sales_price - COALESCE(cr_return_amount, 0.0) AS 18 | sales_amt 19 | FROM catalog_sales 20 | JOIN item 21 | ON i_item_sk = cs_item_sk 22 | JOIN date_dim 23 | ON d_date_sk = cs_sold_date_sk 24 | LEFT JOIN catalog_returns 25 | ON ( cs_order_number = cr_order_number 26 | AND cs_item_sk = cr_item_sk ) 27 | WHERE i_category = 'Men' 28 | UNION 29 | SELECT d_year, 30 | i_brand_id, 31 | i_class_id, 32 | i_category_id, 33 | i_manufact_id, 34 | ss_quantity - COALESCE(sr_return_quantity, 0) AS 35 | sales_cnt, 36 | ss_ext_sales_price - COALESCE(sr_return_amt, 0.0) AS 37 | sales_amt 38 | FROM store_sales 39 | JOIN item 40 | ON i_item_sk = ss_item_sk 41 | JOIN date_dim 42 | ON d_date_sk = ss_sold_date_sk 43 | LEFT JOIN store_returns 44 | ON ( ss_ticket_number = sr_ticket_number 45 | AND ss_item_sk = sr_item_sk ) 46 | WHERE i_category = 'Men' 47 | UNION 48 | SELECT d_year, 49 | i_brand_id, 50 | i_class_id, 51 | i_category_id, 52 | i_manufact_id, 53 | ws_quantity - COALESCE(wr_return_quantity, 0) AS 54 | sales_cnt, 55 | ws_ext_sales_price - COALESCE(wr_return_amt, 0.0) AS 56 | sales_amt 57 | FROM web_sales 58 | JOIN item 59 | ON i_item_sk = ws_item_sk 60 | JOIN date_dim 61 | ON d_date_sk = ws_sold_date_sk 62 | LEFT JOIN web_returns 63 | ON ( ws_order_number = wr_order_number 64 | AND ws_item_sk = wr_item_sk ) 65 | WHERE i_category = 'Men') sales_detail 66 | GROUP BY d_year, 67 | i_brand_id, 68 | i_class_id, 69 | i_category_id, 70 | i_manufact_id) 71 | SELECT prev_yr.d_year AS prev_year, 72 | curr_yr.d_year AS year1, 73 | curr_yr.i_brand_id, 74 | curr_yr.i_class_id, 75 | curr_yr.i_category_id, 76 | curr_yr.i_manufact_id, 77 | prev_yr.sales_cnt AS prev_yr_cnt, 78 | curr_yr.sales_cnt AS curr_yr_cnt, 79 | curr_yr.sales_cnt - prev_yr.sales_cnt AS sales_cnt_diff, 80 | curr_yr.sales_amt - prev_yr.sales_amt AS sales_amt_diff 81 | FROM all_sales curr_yr, 82 | all_sales prev_yr 83 | WHERE curr_yr.i_brand_id = prev_yr.i_brand_id 84 | AND curr_yr.i_class_id = prev_yr.i_class_id 85 | AND curr_yr.i_category_id = prev_yr.i_category_id 86 | AND curr_yr.i_manufact_id = prev_yr.i_manufact_id 87 | AND curr_yr.d_year = 2002 88 | AND prev_yr.d_year = 2002 - 1 89 | AND Cast(curr_yr.sales_cnt AS DECIMAL(17, 2)) / Cast(prev_yr.sales_cnt AS 90 | DECIMAL(17, 2)) 91 | < 0.9 92 | ORDER BY sales_cnt_diff 93 | LIMIT 100; 94 | -------------------------------------------------------------------------------- /query76.sql: -------------------------------------------------------------------------------- 1 | -- start query 76 in stream 0 using template query76.tpl 2 | SELECT channel, 3 | col_name, 4 | d_year, 5 | d_qoy, 6 | i_category, 7 | Count(*) sales_cnt, 8 | Sum(ext_sales_price) sales_amt 9 | FROM (SELECT 'store' AS channel, 10 | 'ss_hdemo_sk' col_name, 11 | d_year, 12 | d_qoy, 13 | i_category, 14 | ss_ext_sales_price ext_sales_price 15 | FROM store_sales, 16 | item, 17 | date_dim 18 | WHERE ss_hdemo_sk IS NULL 19 | AND ss_sold_date_sk = d_date_sk 20 | AND ss_item_sk = i_item_sk 21 | UNION ALL 22 | SELECT 'web' AS channel, 23 | 'ws_ship_hdemo_sk' col_name, 24 | d_year, 25 | d_qoy, 26 | i_category, 27 | ws_ext_sales_price ext_sales_price 28 | FROM web_sales, 29 | item, 30 | date_dim 31 | WHERE ws_ship_hdemo_sk IS NULL 32 | AND ws_sold_date_sk = d_date_sk 33 | AND ws_item_sk = i_item_sk 34 | UNION ALL 35 | SELECT 'catalog' AS channel, 36 | 'cs_warehouse_sk' col_name, 37 | d_year, 38 | d_qoy, 39 | i_category, 40 | cs_ext_sales_price ext_sales_price 41 | FROM catalog_sales, 42 | item, 43 | date_dim 44 | WHERE cs_warehouse_sk IS NULL 45 | AND cs_sold_date_sk = d_date_sk 46 | AND cs_item_sk = i_item_sk) foo 47 | GROUP BY channel, 48 | col_name, 49 | d_year, 50 | d_qoy, 51 | i_category 52 | ORDER BY channel, 53 | col_name, 54 | d_year, 55 | d_qoy, 56 | i_category 57 | LIMIT 100; 58 | -------------------------------------------------------------------------------- /query77.sql: -------------------------------------------------------------------------------- 1 | 2 | -- start query 77 in stream 0 using template query77.tpl 3 | WITH ss AS 4 | ( 5 | SELECT s_store_sk, 6 | Sum(ss_ext_sales_price) AS sales, 7 | Sum(ss_net_profit) AS profit 8 | FROM store_sales, 9 | date_dim, 10 | store 11 | WHERE ss_sold_date_sk = d_date_sk 12 | AND d_date BETWEEN Cast('2001-08-16' AS DATE) AND ( 13 | Cast('2001-08-16' AS DATE) + INTERVAL '30' day) 14 | AND ss_store_sk = s_store_sk 15 | GROUP BY s_store_sk) , sr AS 16 | ( 17 | SELECT s_store_sk, 18 | sum(sr_return_amt) AS returns1, 19 | sum(sr_net_loss) AS profit_loss 20 | FROM store_returns, 21 | date_dim, 22 | store 23 | WHERE sr_returned_date_sk = d_date_sk 24 | AND d_date BETWEEN cast('2001-08-16' AS date) AND ( 25 | cast('2001-08-16' AS date) + INTERVAL '30' day) 26 | AND sr_store_sk = s_store_sk 27 | GROUP BY s_store_sk), cs AS 28 | ( 29 | SELECT cs_call_center_sk, 30 | sum(cs_ext_sales_price) AS sales, 31 | sum(cs_net_profit) AS profit 32 | FROM catalog_sales, 33 | date_dim 34 | WHERE cs_sold_date_sk = d_date_sk 35 | AND d_date BETWEEN cast('2001-08-16' AS date) AND ( 36 | cast('2001-08-16' AS date) + INTERVAL '30' day) 37 | GROUP BY cs_call_center_sk ), cr AS 38 | ( 39 | SELECT cr_call_center_sk, 40 | sum(cr_return_amount) AS returns1, 41 | sum(cr_net_loss) AS profit_loss 42 | FROM catalog_returns, 43 | date_dim 44 | WHERE cr_returned_date_sk = d_date_sk 45 | AND d_date BETWEEN cast('2001-08-16' AS date) AND ( 46 | cast('2001-08-16' AS date) + INTERVAL '30' day) 47 | GROUP BY cr_call_center_sk ), ws AS 48 | ( 49 | SELECT wp_web_page_sk, 50 | sum(ws_ext_sales_price) AS sales, 51 | sum(ws_net_profit) AS profit 52 | FROM web_sales, 53 | date_dim, 54 | web_page 55 | WHERE ws_sold_date_sk = d_date_sk 56 | AND d_date BETWEEN cast('2001-08-16' AS date) AND ( 57 | cast('2001-08-16' AS date) + INTERVAL '30' day) 58 | AND ws_web_page_sk = wp_web_page_sk 59 | GROUP BY wp_web_page_sk), wr AS 60 | ( 61 | SELECT wp_web_page_sk, 62 | sum(wr_return_amt) AS returns1, 63 | sum(wr_net_loss) AS profit_loss 64 | FROM web_returns, 65 | date_dim, 66 | web_page 67 | WHERE wr_returned_date_sk = d_date_sk 68 | AND d_date BETWEEN cast('2001-08-16' AS date) AND ( 69 | cast('2001-08-16' AS date) + INTERVAL '30' day) 70 | AND wr_web_page_sk = wp_web_page_sk 71 | GROUP BY wp_web_page_sk) 72 | SELECT 73 | channel , 74 | id , 75 | sum(sales) AS sales , 76 | sum(returns1) AS returns1 , 77 | sum(profit) AS profit 78 | FROM ( 79 | SELECT 'store channel' AS channel , 80 | ss.s_store_sk AS id , 81 | sales , 82 | COALESCE(returns1, 0) AS returns1 , 83 | (profit - COALESCE(profit_loss,0)) AS profit 84 | FROM ss 85 | LEFT JOIN sr 86 | ON ss.s_store_sk = sr.s_store_sk 87 | UNION ALL 88 | SELECT 'catalog channel' AS channel , 89 | cs_call_center_sk AS id , 90 | sales , 91 | returns1 , 92 | (profit - profit_loss) AS profit 93 | FROM cs , 94 | cr 95 | UNION ALL 96 | SELECT 'web channel' AS channel , 97 | ws.wp_web_page_sk AS id , 98 | sales , 99 | COALESCE(returns1, 0) returns1 , 100 | (profit - COALESCE(profit_loss,0)) AS profit 101 | FROM ws 102 | LEFT JOIN wr 103 | ON ws.wp_web_page_sk = wr.wp_web_page_sk ) x 104 | GROUP BY rollup (channel, id) 105 | ORDER BY channel , 106 | id 107 | LIMIT 100; 108 | 109 | -------------------------------------------------------------------------------- /query78.sql: -------------------------------------------------------------------------------- 1 | -- start query 78 in stream 0 using template query78.tpl 2 | WITH ws 3 | AS (SELECT d_year AS ws_sold_year, 4 | ws_item_sk, 5 | ws_bill_customer_sk ws_customer_sk, 6 | Sum(ws_quantity) ws_qty, 7 | Sum(ws_wholesale_cost) ws_wc, 8 | Sum(ws_sales_price) ws_sp 9 | FROM web_sales 10 | LEFT JOIN web_returns 11 | ON wr_order_number = ws_order_number 12 | AND ws_item_sk = wr_item_sk 13 | JOIN date_dim 14 | ON ws_sold_date_sk = d_date_sk 15 | WHERE wr_order_number IS NULL 16 | GROUP BY d_year, 17 | ws_item_sk, 18 | ws_bill_customer_sk), 19 | cs 20 | AS (SELECT d_year AS cs_sold_year, 21 | cs_item_sk, 22 | cs_bill_customer_sk cs_customer_sk, 23 | Sum(cs_quantity) cs_qty, 24 | Sum(cs_wholesale_cost) cs_wc, 25 | Sum(cs_sales_price) cs_sp 26 | FROM catalog_sales 27 | LEFT JOIN catalog_returns 28 | ON cr_order_number = cs_order_number 29 | AND cs_item_sk = cr_item_sk 30 | JOIN date_dim 31 | ON cs_sold_date_sk = d_date_sk 32 | WHERE cr_order_number IS NULL 33 | GROUP BY d_year, 34 | cs_item_sk, 35 | cs_bill_customer_sk), 36 | ss 37 | AS (SELECT d_year AS ss_sold_year, 38 | ss_item_sk, 39 | ss_customer_sk, 40 | Sum(ss_quantity) ss_qty, 41 | Sum(ss_wholesale_cost) ss_wc, 42 | Sum(ss_sales_price) ss_sp 43 | FROM store_sales 44 | LEFT JOIN store_returns 45 | ON sr_ticket_number = ss_ticket_number 46 | AND ss_item_sk = sr_item_sk 47 | JOIN date_dim 48 | ON ss_sold_date_sk = d_date_sk 49 | WHERE sr_ticket_number IS NULL 50 | GROUP BY d_year, 51 | ss_item_sk, 52 | ss_customer_sk) 53 | SELECT ss_item_sk, 54 | Round(ss_qty / ( COALESCE(ws_qty + cs_qty, 1) ), 2) ratio, 55 | ss_qty store_qty, 56 | ss_wc 57 | store_wholesale_cost, 58 | ss_sp 59 | store_sales_price, 60 | COALESCE(ws_qty, 0) + COALESCE(cs_qty, 0) 61 | other_chan_qty, 62 | COALESCE(ws_wc, 0) + COALESCE(cs_wc, 0) 63 | other_chan_wholesale_cost, 64 | COALESCE(ws_sp, 0) + COALESCE(cs_sp, 0) 65 | other_chan_sales_price 66 | FROM ss 67 | LEFT JOIN ws 68 | ON ( ws_sold_year = ss_sold_year 69 | AND ws_item_sk = ss_item_sk 70 | AND ws_customer_sk = ss_customer_sk ) 71 | LEFT JOIN cs 72 | ON ( cs_sold_year = ss_sold_year 73 | AND cs_item_sk = cs_item_sk 74 | AND cs_customer_sk = ss_customer_sk ) 75 | WHERE COALESCE(ws_qty, 0) > 0 76 | AND COALESCE(cs_qty, 0) > 0 77 | AND ss_sold_year = 1999 78 | ORDER BY ss_item_sk, 79 | ss_qty DESC, 80 | ss_wc DESC, 81 | ss_sp DESC, 82 | other_chan_qty, 83 | other_chan_wholesale_cost, 84 | other_chan_sales_price, 85 | Round(ss_qty / ( COALESCE(ws_qty + cs_qty, 1) ), 2) 86 | LIMIT 100; 87 | -------------------------------------------------------------------------------- /query79.sql: -------------------------------------------------------------------------------- 1 | -- start query 79 in stream 0 using template query79.tpl 2 | SELECT c_last_name, 3 | c_first_name, 4 | Substr(s_city, 1, 30), 5 | ss_ticket_number, 6 | amt, 7 | profit 8 | FROM (SELECT ss_ticket_number, 9 | ss_customer_sk, 10 | store.s_city, 11 | Sum(ss_coupon_amt) amt, 12 | Sum(ss_net_profit) profit 13 | FROM store_sales, 14 | date_dim, 15 | store, 16 | household_demographics 17 | WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk 18 | AND store_sales.ss_store_sk = store.s_store_sk 19 | AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk 20 | AND ( household_demographics.hd_dep_count = 8 21 | OR household_demographics.hd_vehicle_count > 4 ) 22 | AND date_dim.d_dow = 1 23 | AND date_dim.d_year IN ( 2000, 2000 + 1, 2000 + 2 ) 24 | AND store.s_number_employees BETWEEN 200 AND 295 25 | GROUP BY ss_ticket_number, 26 | ss_customer_sk, 27 | ss_addr_sk, 28 | store.s_city) ms, 29 | customer 30 | WHERE ss_customer_sk = c_customer_sk 31 | ORDER BY c_last_name, 32 | c_first_name, 33 | Substr(s_city, 1, 30), 34 | profit 35 | LIMIT 100; 36 | -------------------------------------------------------------------------------- /query80.sql: -------------------------------------------------------------------------------- 1 | -- start query 80 in stream 0 using template query80.tpl 2 | WITH ssr AS 3 | ( 4 | SELECT s_store_id AS store_id, 5 | Sum(ss_ext_sales_price) AS sales, 6 | Sum(COALESCE(sr_return_amt, 0)) AS returns1, 7 | Sum(ss_net_profit - COALESCE(sr_net_loss, 0)) AS profit 8 | FROM store_sales 9 | LEFT OUTER JOIN store_returns 10 | ON ( 11 | ss_item_sk = sr_item_sk 12 | AND ss_ticket_number = sr_ticket_number), 13 | date_dim, 14 | store, 15 | item, 16 | promotion 17 | WHERE ss_sold_date_sk = d_date_sk 18 | AND d_date BETWEEN Cast('2000-08-26' AS DATE) AND ( 19 | Cast('2000-08-26' AS DATE) + INTERVAL '30' day) 20 | AND ss_store_sk = s_store_sk 21 | AND ss_item_sk = i_item_sk 22 | AND i_current_price > 50 23 | AND ss_promo_sk = p_promo_sk 24 | AND p_channel_tv = 'N' 25 | GROUP BY s_store_id) , csr AS 26 | ( 27 | SELECT cp_catalog_page_id AS catalog_page_id, 28 | sum(cs_ext_sales_price) AS sales, 29 | sum(COALESCE(cr_return_amount, 0)) AS returns1, 30 | sum(cs_net_profit - COALESCE(cr_net_loss, 0)) AS profit 31 | FROM catalog_sales 32 | LEFT OUTER JOIN catalog_returns 33 | ON ( 34 | cs_item_sk = cr_item_sk 35 | AND cs_order_number = cr_order_number), 36 | date_dim, 37 | catalog_page, 38 | item, 39 | promotion 40 | WHERE cs_sold_date_sk = d_date_sk 41 | AND d_date BETWEEN cast('2000-08-26' AS date) AND ( 42 | cast('2000-08-26' AS date) + INTERVAL '30' day) 43 | AND cs_catalog_page_sk = cp_catalog_page_sk 44 | AND cs_item_sk = i_item_sk 45 | AND i_current_price > 50 46 | AND cs_promo_sk = p_promo_sk 47 | AND p_channel_tv = 'N' 48 | GROUP BY cp_catalog_page_id) , wsr AS 49 | ( 50 | SELECT web_site_id, 51 | sum(ws_ext_sales_price) AS sales, 52 | sum(COALESCE(wr_return_amt, 0)) AS returns1, 53 | sum(ws_net_profit - COALESCE(wr_net_loss, 0)) AS profit 54 | FROM web_sales 55 | LEFT OUTER JOIN web_returns 56 | ON ( 57 | ws_item_sk = wr_item_sk 58 | AND ws_order_number = wr_order_number), 59 | date_dim, 60 | web_site, 61 | item, 62 | promotion 63 | WHERE ws_sold_date_sk = d_date_sk 64 | AND d_date BETWEEN cast('2000-08-26' AS date) AND ( 65 | cast('2000-08-26' AS date) + INTERVAL '30' day) 66 | AND ws_web_site_sk = web_site_sk 67 | AND ws_item_sk = i_item_sk 68 | AND i_current_price > 50 69 | AND ws_promo_sk = p_promo_sk 70 | AND p_channel_tv = 'N' 71 | GROUP BY web_site_id) 72 | SELECT 73 | channel , 74 | id , 75 | sum(sales) AS sales , 76 | sum(returns1) AS returns1 , 77 | sum(profit) AS profit 78 | FROM ( 79 | SELECT 'store channel' AS channel , 80 | 'store' 81 | || store_id AS id , 82 | sales , 83 | returns1 , 84 | profit 85 | FROM ssr 86 | UNION ALL 87 | SELECT 'catalog channel' AS channel , 88 | 'catalog_page' 89 | || catalog_page_id AS id , 90 | sales , 91 | returns1 , 92 | profit 93 | FROM csr 94 | UNION ALL 95 | SELECT 'web channel' AS channel , 96 | 'web_site' 97 | || web_site_id AS id , 98 | sales , 99 | returns1 , 100 | profit 101 | FROM wsr ) x 102 | GROUP BY rollup (channel, id) 103 | ORDER BY channel , 104 | id 105 | LIMIT 100; 106 | 107 | -------------------------------------------------------------------------------- /query81.sql: -------------------------------------------------------------------------------- 1 | 2 | -- start query 81 in stream 0 using template query81.tpl 3 | WITH customer_total_return 4 | AS (SELECT cr_returning_customer_sk AS ctr_customer_sk, 5 | ca_state AS ctr_state, 6 | Sum(cr_return_amt_inc_tax) AS ctr_total_return 7 | FROM catalog_returns, 8 | date_dim, 9 | customer_address 10 | WHERE cr_returned_date_sk = d_date_sk 11 | AND d_year = 1999 12 | AND cr_returning_addr_sk = ca_address_sk 13 | GROUP BY cr_returning_customer_sk, 14 | ca_state) 15 | SELECT c_customer_id, 16 | c_salutation, 17 | c_first_name, 18 | c_last_name, 19 | ca_street_number, 20 | ca_street_name, 21 | ca_street_type, 22 | ca_suite_number, 23 | ca_city, 24 | ca_county, 25 | ca_state, 26 | ca_zip, 27 | ca_country, 28 | ca_gmt_offset, 29 | ca_location_type, 30 | ctr_total_return 31 | FROM customer_total_return ctr1, 32 | customer_address, 33 | customer 34 | WHERE ctr1.ctr_total_return > (SELECT Avg(ctr_total_return) * 1.2 35 | FROM customer_total_return ctr2 36 | WHERE ctr1.ctr_state = ctr2.ctr_state) 37 | AND ca_address_sk = c_current_addr_sk 38 | AND ca_state = 'TX' 39 | AND ctr1.ctr_customer_sk = c_customer_sk 40 | ORDER BY c_customer_id, 41 | c_salutation, 42 | c_first_name, 43 | c_last_name, 44 | ca_street_number, 45 | ca_street_name, 46 | ca_street_type, 47 | ca_suite_number, 48 | ca_city, 49 | ca_county, 50 | ca_state, 51 | ca_zip, 52 | ca_country, 53 | ca_gmt_offset, 54 | ca_location_type, 55 | ctr_total_return 56 | LIMIT 100; 57 | -------------------------------------------------------------------------------- /query82.sql: -------------------------------------------------------------------------------- 1 | 2 | -- start query 82 in stream 0 using template query82.tpl 3 | SELECT 4 | i_item_id , 5 | i_item_desc , 6 | i_current_price 7 | FROM item, 8 | inventory, 9 | date_dim, 10 | store_sales 11 | WHERE i_current_price BETWEEN 63 AND 63+30 12 | AND inv_item_sk = i_item_sk 13 | AND d_date_sk=inv_date_sk 14 | AND d_date BETWEEN Cast('1998-04-27' AS DATE) AND ( 15 | Cast('1998-04-27' AS DATE) + INTERVAL '60' day) 16 | AND i_manufact_id IN (57,293,427,320) 17 | AND inv_quantity_on_hand BETWEEN 100 AND 500 18 | AND ss_item_sk = i_item_sk 19 | GROUP BY i_item_id, 20 | i_item_desc, 21 | i_current_price 22 | ORDER BY i_item_id 23 | LIMIT 100; 24 | 25 | -------------------------------------------------------------------------------- /query83.sql: -------------------------------------------------------------------------------- 1 | -- start query 83 in stream 0 using template query83.tpl 2 | WITH sr_items 3 | AS (SELECT i_item_id item_id, 4 | Sum(sr_return_quantity) sr_item_qty 5 | FROM store_returns, 6 | item, 7 | date_dim 8 | WHERE sr_item_sk = i_item_sk 9 | AND d_date IN (SELECT d_date 10 | FROM date_dim 11 | WHERE d_week_seq IN (SELECT d_week_seq 12 | FROM date_dim 13 | WHERE 14 | d_date IN ( '1999-06-30', 15 | '1999-08-28', 16 | '1999-11-18' 17 | ))) 18 | AND sr_returned_date_sk = d_date_sk 19 | GROUP BY i_item_id), 20 | cr_items 21 | AS (SELECT i_item_id item_id, 22 | Sum(cr_return_quantity) cr_item_qty 23 | FROM catalog_returns, 24 | item, 25 | date_dim 26 | WHERE cr_item_sk = i_item_sk 27 | AND d_date IN (SELECT d_date 28 | FROM date_dim 29 | WHERE d_week_seq IN (SELECT d_week_seq 30 | FROM date_dim 31 | WHERE 32 | d_date IN ( '1999-06-30', 33 | '1999-08-28', 34 | '1999-11-18' 35 | ))) 36 | AND cr_returned_date_sk = d_date_sk 37 | GROUP BY i_item_id), 38 | wr_items 39 | AS (SELECT i_item_id item_id, 40 | Sum(wr_return_quantity) wr_item_qty 41 | FROM web_returns, 42 | item, 43 | date_dim 44 | WHERE wr_item_sk = i_item_sk 45 | AND d_date IN (SELECT d_date 46 | FROM date_dim 47 | WHERE d_week_seq IN (SELECT d_week_seq 48 | FROM date_dim 49 | WHERE 50 | d_date IN ( '1999-06-30', 51 | '1999-08-28', 52 | '1999-11-18' 53 | ))) 54 | AND wr_returned_date_sk = d_date_sk 55 | GROUP BY i_item_id) 56 | SELECT sr_items.item_id, 57 | sr_item_qty, 58 | sr_item_qty / ( sr_item_qty + cr_item_qty + wr_item_qty ) / 3.0 * 59 | 100 sr_dev, 60 | cr_item_qty, 61 | cr_item_qty / ( sr_item_qty + cr_item_qty + wr_item_qty ) / 3.0 * 62 | 100 cr_dev, 63 | wr_item_qty, 64 | wr_item_qty / ( sr_item_qty + cr_item_qty + wr_item_qty ) / 3.0 * 65 | 100 wr_dev, 66 | ( sr_item_qty + cr_item_qty + wr_item_qty ) / 3.0 67 | average 68 | FROM sr_items, 69 | cr_items, 70 | wr_items 71 | WHERE sr_items.item_id = cr_items.item_id 72 | AND sr_items.item_id = wr_items.item_id 73 | ORDER BY sr_items.item_id, 74 | sr_item_qty 75 | LIMIT 100; 76 | -------------------------------------------------------------------------------- /query84.sql: -------------------------------------------------------------------------------- 1 | -- start query 84 in stream 0 using template query84.tpl 2 | SELECT c_customer_id AS customer_id, 3 | c_last_name 4 | || ', ' 5 | || c_first_name AS customername 6 | FROM customer, 7 | customer_address, 8 | customer_demographics, 9 | household_demographics, 10 | income_band, 11 | store_returns 12 | WHERE ca_city = 'Green Acres' 13 | AND c_current_addr_sk = ca_address_sk 14 | AND ib_lower_bound >= 54986 15 | AND ib_upper_bound <= 54986 + 50000 16 | AND ib_income_band_sk = hd_income_band_sk 17 | AND cd_demo_sk = c_current_cdemo_sk 18 | AND hd_demo_sk = c_current_hdemo_sk 19 | AND sr_cdemo_sk = cd_demo_sk 20 | ORDER BY c_customer_id 21 | LIMIT 100; 22 | -------------------------------------------------------------------------------- /query85.sql: -------------------------------------------------------------------------------- 1 | -- start query 85 in stream 0 using template query85.tpl 2 | SELECT Substr(r_reason_desc, 1, 20), 3 | Avg(ws_quantity), 4 | Avg(wr_refunded_cash), 5 | Avg(wr_fee) 6 | FROM web_sales, 7 | web_returns, 8 | web_page, 9 | customer_demographics cd1, 10 | customer_demographics cd2, 11 | customer_address, 12 | date_dim, 13 | reason 14 | WHERE ws_web_page_sk = wp_web_page_sk 15 | AND ws_item_sk = wr_item_sk 16 | AND ws_order_number = wr_order_number 17 | AND ws_sold_date_sk = d_date_sk 18 | AND d_year = 2001 19 | AND cd1.cd_demo_sk = wr_refunded_cdemo_sk 20 | AND cd2.cd_demo_sk = wr_returning_cdemo_sk 21 | AND ca_address_sk = wr_refunded_addr_sk 22 | AND r_reason_sk = wr_reason_sk 23 | AND ( ( cd1.cd_marital_status = 'W' 24 | AND cd1.cd_marital_status = cd2.cd_marital_status 25 | AND cd1.cd_education_status = 'Primary' 26 | AND cd1.cd_education_status = cd2.cd_education_status 27 | AND ws_sales_price BETWEEN 100.00 AND 150.00 ) 28 | OR ( cd1.cd_marital_status = 'D' 29 | AND cd1.cd_marital_status = cd2.cd_marital_status 30 | AND cd1.cd_education_status = 'Secondary' 31 | AND cd1.cd_education_status = cd2.cd_education_status 32 | AND ws_sales_price BETWEEN 50.00 AND 100.00 ) 33 | OR ( cd1.cd_marital_status = 'M' 34 | AND cd1.cd_marital_status = cd2.cd_marital_status 35 | AND cd1.cd_education_status = 'Advanced Degree' 36 | AND cd1.cd_education_status = cd2.cd_education_status 37 | AND ws_sales_price BETWEEN 150.00 AND 200.00 ) ) 38 | AND ( ( ca_country = 'United States' 39 | AND ca_state IN ( 'KY', 'ME', 'IL' ) 40 | AND ws_net_profit BETWEEN 100 AND 200 ) 41 | OR ( ca_country = 'United States' 42 | AND ca_state IN ( 'OK', 'NE', 'MN' ) 43 | AND ws_net_profit BETWEEN 150 AND 300 ) 44 | OR ( ca_country = 'United States' 45 | AND ca_state IN ( 'FL', 'WI', 'KS' ) 46 | AND ws_net_profit BETWEEN 50 AND 250 ) ) 47 | GROUP BY r_reason_desc 48 | ORDER BY Substr(r_reason_desc, 1, 20), 49 | Avg(ws_quantity), 50 | Avg(wr_refunded_cash), 51 | Avg(wr_fee) 52 | LIMIT 100; 53 | -------------------------------------------------------------------------------- /query86.sql: -------------------------------------------------------------------------------- 1 | -- start query 86 in stream 0 using template query86.tpl 2 | SELECT Sum(ws_net_paid) AS total_sum, 3 | i_category, 4 | i_class, 5 | Grouping(i_category) + Grouping(i_class) AS lochierarchy, 6 | Rank() 7 | OVER ( 8 | partition BY Grouping(i_category)+Grouping(i_class), CASE 9 | WHEN Grouping( 10 | i_class) = 0 THEN i_category END 11 | ORDER BY Sum(ws_net_paid) DESC) AS rank_within_parent 12 | FROM web_sales, 13 | date_dim d1, 14 | item 15 | WHERE d1.d_month_seq BETWEEN 1183 AND 1183 + 11 16 | AND d1.d_date_sk = ws_sold_date_sk 17 | AND i_item_sk = ws_item_sk 18 | GROUP BY rollup( i_category, i_class ) 19 | ORDER BY lochierarchy DESC, 20 | CASE 21 | WHEN lochierarchy = 0 THEN i_category 22 | END, 23 | rank_within_parent 24 | LIMIT 100; 25 | -------------------------------------------------------------------------------- /query87.sql: -------------------------------------------------------------------------------- 1 | -- start query 87 in stream 0 using template query87.tpl 2 | select count(*) 3 | from ((select distinct c_last_name, c_first_name, d_date 4 | from store_sales, date_dim, customer 5 | where store_sales.ss_sold_date_sk = date_dim.d_date_sk 6 | and store_sales.ss_customer_sk = customer.c_customer_sk 7 | and d_month_seq between 1188 and 1188+11) 8 | except 9 | (select distinct c_last_name, c_first_name, d_date 10 | from catalog_sales, date_dim, customer 11 | where catalog_sales.cs_sold_date_sk = date_dim.d_date_sk 12 | and catalog_sales.cs_bill_customer_sk = customer.c_customer_sk 13 | and d_month_seq between 1188 and 1188+11) 14 | except 15 | (select distinct c_last_name, c_first_name, d_date 16 | from web_sales, date_dim, customer 17 | where web_sales.ws_sold_date_sk = date_dim.d_date_sk 18 | and web_sales.ws_bill_customer_sk = customer.c_customer_sk 19 | and d_month_seq between 1188 and 1188+11) 20 | ) cool_cust 21 | ; 22 | 23 | -------------------------------------------------------------------------------- /query88.sql: -------------------------------------------------------------------------------- 1 | -- start query 88 in stream 0 using template query88.tpl 2 | select * 3 | from 4 | (select count(*) h8_30_to_9 5 | from store_sales, household_demographics , time_dim, store 6 | where ss_sold_time_sk = time_dim.t_time_sk 7 | and ss_hdemo_sk = household_demographics.hd_demo_sk 8 | and ss_store_sk = s_store_sk 9 | and time_dim.t_hour = 8 10 | and time_dim.t_minute >= 30 11 | and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or 12 | (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or 13 | (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) 14 | and store.s_store_name = 'ese') s1, 15 | (select count(*) h9_to_9_30 16 | from store_sales, household_demographics , time_dim, store 17 | where ss_sold_time_sk = time_dim.t_time_sk 18 | and ss_hdemo_sk = household_demographics.hd_demo_sk 19 | and ss_store_sk = s_store_sk 20 | and time_dim.t_hour = 9 21 | and time_dim.t_minute < 30 22 | and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or 23 | (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or 24 | (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) 25 | and store.s_store_name = 'ese') s2, 26 | (select count(*) h9_30_to_10 27 | from store_sales, household_demographics , time_dim, store 28 | where ss_sold_time_sk = time_dim.t_time_sk 29 | and ss_hdemo_sk = household_demographics.hd_demo_sk 30 | and ss_store_sk = s_store_sk 31 | and time_dim.t_hour = 9 32 | and time_dim.t_minute >= 30 33 | and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or 34 | (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or 35 | (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) 36 | and store.s_store_name = 'ese') s3, 37 | (select count(*) h10_to_10_30 38 | from store_sales, household_demographics , time_dim, store 39 | where ss_sold_time_sk = time_dim.t_time_sk 40 | and ss_hdemo_sk = household_demographics.hd_demo_sk 41 | and ss_store_sk = s_store_sk 42 | and time_dim.t_hour = 10 43 | and time_dim.t_minute < 30 44 | and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or 45 | (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or 46 | (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) 47 | and store.s_store_name = 'ese') s4, 48 | (select count(*) h10_30_to_11 49 | from store_sales, household_demographics , time_dim, store 50 | where ss_sold_time_sk = time_dim.t_time_sk 51 | and ss_hdemo_sk = household_demographics.hd_demo_sk 52 | and ss_store_sk = s_store_sk 53 | and time_dim.t_hour = 10 54 | and time_dim.t_minute >= 30 55 | and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or 56 | (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or 57 | (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) 58 | and store.s_store_name = 'ese') s5, 59 | (select count(*) h11_to_11_30 60 | from store_sales, household_demographics , time_dim, store 61 | where ss_sold_time_sk = time_dim.t_time_sk 62 | and ss_hdemo_sk = household_demographics.hd_demo_sk 63 | and ss_store_sk = s_store_sk 64 | and time_dim.t_hour = 11 65 | and time_dim.t_minute < 30 66 | and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or 67 | (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or 68 | (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) 69 | and store.s_store_name = 'ese') s6, 70 | (select count(*) h11_30_to_12 71 | from store_sales, household_demographics , time_dim, store 72 | where ss_sold_time_sk = time_dim.t_time_sk 73 | and ss_hdemo_sk = household_demographics.hd_demo_sk 74 | and ss_store_sk = s_store_sk 75 | and time_dim.t_hour = 11 76 | and time_dim.t_minute >= 30 77 | and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or 78 | (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or 79 | (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) 80 | and store.s_store_name = 'ese') s7, 81 | (select count(*) h12_to_12_30 82 | from store_sales, household_demographics , time_dim, store 83 | where ss_sold_time_sk = time_dim.t_time_sk 84 | and ss_hdemo_sk = household_demographics.hd_demo_sk 85 | and ss_store_sk = s_store_sk 86 | and time_dim.t_hour = 12 87 | and time_dim.t_minute < 30 88 | and ((household_demographics.hd_dep_count = -1 and household_demographics.hd_vehicle_count<=-1+2) or 89 | (household_demographics.hd_dep_count = 2 and household_demographics.hd_vehicle_count<=2+2) or 90 | (household_demographics.hd_dep_count = 3 and household_demographics.hd_vehicle_count<=3+2)) 91 | and store.s_store_name = 'ese') s8 92 | ; 93 | 94 | -------------------------------------------------------------------------------- /query89.sql: -------------------------------------------------------------------------------- 1 | -- start query 89 in stream 0 using template query89.tpl 2 | SELECT * 3 | FROM (SELECT i_category, 4 | i_class, 5 | i_brand, 6 | s_store_name, 7 | s_company_name, 8 | d_moy, 9 | Sum(ss_sales_price) sum_sales, 10 | Avg(Sum(ss_sales_price)) 11 | OVER ( 12 | partition BY i_category, i_brand, s_store_name, s_company_name 13 | ) 14 | avg_monthly_sales 15 | FROM item, 16 | store_sales, 17 | date_dim, 18 | store 19 | WHERE ss_item_sk = i_item_sk 20 | AND ss_sold_date_sk = d_date_sk 21 | AND ss_store_sk = s_store_sk 22 | AND d_year IN ( 2002 ) 23 | AND ( ( i_category IN ( 'Home', 'Men', 'Sports' ) 24 | AND i_class IN ( 'paint', 'accessories', 'fitness' ) ) 25 | OR ( i_category IN ( 'Shoes', 'Jewelry', 'Women' ) 26 | AND i_class IN ( 'mens', 'pendants', 'swimwear' ) ) ) 27 | GROUP BY i_category, 28 | i_class, 29 | i_brand, 30 | s_store_name, 31 | s_company_name, 32 | d_moy) tmp1 33 | WHERE CASE 34 | WHEN ( avg_monthly_sales <> 0 ) THEN ( 35 | Abs(sum_sales - avg_monthly_sales) / avg_monthly_sales ) 36 | ELSE NULL 37 | END > 0.1 38 | ORDER BY sum_sales - avg_monthly_sales, 39 | s_store_name 40 | LIMIT 100; 41 | -------------------------------------------------------------------------------- /query9.sql: -------------------------------------------------------------------------------- 1 | -- start query 9 in stream 0 using template query9.tpl 2 | SELECT CASE 3 | WHEN (SELECT Count(*) 4 | FROM store_sales 5 | WHERE ss_quantity BETWEEN 1 AND 20) > 3672 THEN 6 | (SELECT Avg(ss_ext_list_price) 7 | FROM store_sales 8 | WHERE 9 | ss_quantity BETWEEN 1 AND 20) 10 | ELSE (SELECT Avg(ss_net_profit) 11 | FROM store_sales 12 | WHERE ss_quantity BETWEEN 1 AND 20) 13 | END bucket1, 14 | CASE 15 | WHEN (SELECT Count(*) 16 | FROM store_sales 17 | WHERE ss_quantity BETWEEN 21 AND 40) > 3392 THEN 18 | (SELECT Avg(ss_ext_list_price) 19 | FROM store_sales 20 | WHERE 21 | ss_quantity BETWEEN 21 AND 40) 22 | ELSE (SELECT Avg(ss_net_profit) 23 | FROM store_sales 24 | WHERE ss_quantity BETWEEN 21 AND 40) 25 | END bucket2, 26 | CASE 27 | WHEN (SELECT Count(*) 28 | FROM store_sales 29 | WHERE ss_quantity BETWEEN 41 AND 60) > 32784 THEN 30 | (SELECT Avg(ss_ext_list_price) 31 | FROM store_sales 32 | WHERE 33 | ss_quantity BETWEEN 41 AND 60) 34 | ELSE (SELECT Avg(ss_net_profit) 35 | FROM store_sales 36 | WHERE ss_quantity BETWEEN 41 AND 60) 37 | END bucket3, 38 | CASE 39 | WHEN (SELECT Count(*) 40 | FROM store_sales 41 | WHERE ss_quantity BETWEEN 61 AND 80) > 26032 THEN 42 | (SELECT Avg(ss_ext_list_price) 43 | FROM store_sales 44 | WHERE 45 | ss_quantity BETWEEN 61 AND 80) 46 | ELSE (SELECT Avg(ss_net_profit) 47 | FROM store_sales 48 | WHERE ss_quantity BETWEEN 61 AND 80) 49 | END bucket4, 50 | CASE 51 | WHEN (SELECT Count(*) 52 | FROM store_sales 53 | WHERE ss_quantity BETWEEN 81 AND 100) > 23982 THEN 54 | (SELECT Avg(ss_ext_list_price) 55 | FROM store_sales 56 | WHERE 57 | ss_quantity BETWEEN 81 AND 100) 58 | ELSE (SELECT Avg(ss_net_profit) 59 | FROM store_sales 60 | WHERE ss_quantity BETWEEN 81 AND 100) 61 | END bucket5 62 | FROM reason 63 | WHERE r_reason_sk = 1; 64 | -------------------------------------------------------------------------------- /query90.sql: -------------------------------------------------------------------------------- 1 | 2 | -- start query 90 in stream 0 using template query90.tpl 3 | SELECT Cast(amc AS DECIMAL(15, 4)) / Cast(pmc AS DECIMAL(15, 4)) 4 | am_pm_ratio 5 | FROM (SELECT Count(*) amc 6 | FROM web_sales, 7 | household_demographics, 8 | time_dim, 9 | web_page 10 | WHERE ws_sold_time_sk = time_dim.t_time_sk 11 | AND ws_ship_hdemo_sk = household_demographics.hd_demo_sk 12 | AND ws_web_page_sk = web_page.wp_web_page_sk 13 | AND time_dim.t_hour BETWEEN 12 AND 12 + 1 14 | AND household_demographics.hd_dep_count = 8 15 | AND web_page.wp_char_count BETWEEN 5000 AND 5200) at1, 16 | (SELECT Count(*) pmc 17 | FROM web_sales, 18 | household_demographics, 19 | time_dim, 20 | web_page 21 | WHERE ws_sold_time_sk = time_dim.t_time_sk 22 | AND ws_ship_hdemo_sk = household_demographics.hd_demo_sk 23 | AND ws_web_page_sk = web_page.wp_web_page_sk 24 | AND time_dim.t_hour BETWEEN 20 AND 20 + 1 25 | AND household_demographics.hd_dep_count = 8 26 | AND web_page.wp_char_count BETWEEN 5000 AND 5200) pt 27 | ORDER BY am_pm_ratio 28 | LIMIT 100; 29 | -------------------------------------------------------------------------------- /query91.sql: -------------------------------------------------------------------------------- 1 | -- start query 91 in stream 0 using template query91.tpl 2 | SELECT cc_call_center_id Call_Center, 3 | cc_name Call_Center_Name, 4 | cc_manager Manager, 5 | Sum(cr_net_loss) Returns_Loss 6 | FROM call_center, 7 | catalog_returns, 8 | date_dim, 9 | customer, 10 | customer_address, 11 | customer_demographics, 12 | household_demographics 13 | WHERE cr_call_center_sk = cc_call_center_sk 14 | AND cr_returned_date_sk = d_date_sk 15 | AND cr_returning_customer_sk = c_customer_sk 16 | AND cd_demo_sk = c_current_cdemo_sk 17 | AND hd_demo_sk = c_current_hdemo_sk 18 | AND ca_address_sk = c_current_addr_sk 19 | AND d_year = 1999 20 | AND d_moy = 12 21 | AND ( ( cd_marital_status = 'M' 22 | AND cd_education_status = 'Unknown' ) 23 | OR ( cd_marital_status = 'W' 24 | AND cd_education_status = 'Advanced Degree' ) ) 25 | AND hd_buy_potential LIKE 'Unknown%' 26 | AND ca_gmt_offset = -7 27 | GROUP BY cc_call_center_id, 28 | cc_name, 29 | cc_manager, 30 | cd_marital_status, 31 | cd_education_status 32 | ORDER BY Sum(cr_net_loss) DESC; 33 | -------------------------------------------------------------------------------- /query92.sql: -------------------------------------------------------------------------------- 1 | -- start query 92 in stream 0 using template query92.tpl 2 | SELECT 3 | Sum(ws_ext_discount_amt) AS `Excess Discount Amount` 4 | FROM web_sales , 5 | item , 6 | date_dim 7 | WHERE i_manufact_id = 718 8 | AND i_item_sk = ws_item_sk 9 | AND d_date BETWEEN '2002-03-29' AND ( 10 | Cast('2002-03-29' AS DATE) + INTERVAL '90' day) 11 | AND d_date_sk = ws_sold_date_sk 12 | AND ws_ext_discount_amt > 13 | ( 14 | SELECT 1.3 * avg(ws_ext_discount_amt) 15 | FROM web_sales , 16 | date_dim 17 | WHERE ws_item_sk = i_item_sk 18 | AND d_date BETWEEN '2002-03-29' AND ( 19 | cast('2002-03-29' AS date) + INTERVAL '90' day) 20 | AND d_date_sk = ws_sold_date_sk ) 21 | ORDER BY sum(ws_ext_discount_amt) 22 | LIMIT 100; 23 | 24 | -------------------------------------------------------------------------------- /query93.sql: -------------------------------------------------------------------------------- 1 | -- start query 93 in stream 0 using template query93.tpl 2 | SELECT ss_customer_sk, 3 | Sum(act_sales) sumsales 4 | FROM (SELECT ss_item_sk, 5 | ss_ticket_number, 6 | ss_customer_sk, 7 | CASE 8 | WHEN sr_return_quantity IS NOT NULL THEN 9 | ( ss_quantity - sr_return_quantity ) * ss_sales_price 10 | ELSE ( ss_quantity * ss_sales_price ) 11 | END act_sales 12 | FROM store_sales 13 | LEFT OUTER JOIN store_returns 14 | ON ( sr_item_sk = ss_item_sk 15 | AND sr_ticket_number = ss_ticket_number ), 16 | reason 17 | WHERE sr_reason_sk = r_reason_sk 18 | AND r_reason_desc = 'reason 38') t 19 | GROUP BY ss_customer_sk 20 | ORDER BY sumsales, 21 | ss_customer_sk 22 | LIMIT 100; 23 | -------------------------------------------------------------------------------- /query94.sql: -------------------------------------------------------------------------------- 1 | -- start query 94 in stream 0 using template query94.tpl 2 | SELECT 3 | Count(DISTINCT ws_order_number) AS `order count` , 4 | Sum(ws_ext_ship_cost) AS `total shipping cost` , 5 | Sum(ws_net_profit) AS `total net profit` 6 | FROM web_sales ws1 , 7 | date_dim , 8 | customer_address , 9 | web_site 10 | WHERE d_date BETWEEN '2000-3-01' AND ( 11 | Cast('2000-3-01' AS DATE) + INTERVAL '60' day) 12 | AND ws1.ws_ship_date_sk = d_date_sk 13 | AND ws1.ws_ship_addr_sk = ca_address_sk 14 | AND ca_state = 'MT' 15 | AND ws1.ws_web_site_sk = web_site_sk 16 | AND web_company_name = 'pri' 17 | AND EXISTS 18 | ( 19 | SELECT * 20 | FROM web_sales ws2 21 | WHERE ws1.ws_order_number = ws2.ws_order_number 22 | AND ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) 23 | AND NOT EXISTS 24 | ( 25 | SELECT * 26 | FROM web_returns wr1 27 | WHERE ws1.ws_order_number = wr1.wr_order_number) 28 | ORDER BY count(DISTINCT ws_order_number) 29 | LIMIT 100; 30 | 31 | -------------------------------------------------------------------------------- /query95.sql: -------------------------------------------------------------------------------- 1 | -- start query 95 in stream 0 using template query95.tpl 2 | WITH ws_wh AS 3 | ( 4 | SELECT ws1.ws_order_number, 5 | ws1.ws_warehouse_sk wh1, 6 | ws2.ws_warehouse_sk wh2 7 | FROM web_sales ws1, 8 | web_sales ws2 9 | WHERE ws1.ws_order_number = ws2.ws_order_number 10 | AND ws1.ws_warehouse_sk <> ws2.ws_warehouse_sk) 11 | SELECT 12 | Count(DISTINCT ws_order_number) AS `order count` , 13 | Sum(ws_ext_ship_cost) AS `total shipping cost` , 14 | Sum(ws_net_profit) AS `total net profit` 15 | FROM web_sales ws1 , 16 | date_dim , 17 | customer_address , 18 | web_site 19 | WHERE d_date BETWEEN '2000-4-01' AND ( 20 | Cast('2000-4-01' AS DATE) + INTERVAL '60' day) 21 | AND ws1.ws_ship_date_sk = d_date_sk 22 | AND ws1.ws_ship_addr_sk = ca_address_sk 23 | AND ca_state = 'IN' 24 | AND ws1.ws_web_site_sk = web_site_sk 25 | AND web_company_name = 'pri' 26 | AND ws1.ws_order_number IN 27 | ( 28 | SELECT ws_order_number 29 | FROM ws_wh) 30 | AND ws1.ws_order_number IN 31 | ( 32 | SELECT wr_order_number 33 | FROM web_returns, 34 | ws_wh 35 | WHERE wr_order_number = ws_wh.ws_order_number) 36 | ORDER BY count(DISTINCT ws_order_number) 37 | LIMIT 100; 38 | 39 | -------------------------------------------------------------------------------- /query96.sql: -------------------------------------------------------------------------------- 1 | -- start query 96 in stream 0 using template query96.tpl 2 | SELECT Count(*) 3 | FROM store_sales, 4 | household_demographics, 5 | time_dim, 6 | store 7 | WHERE ss_sold_time_sk = time_dim.t_time_sk 8 | AND ss_hdemo_sk = household_demographics.hd_demo_sk 9 | AND ss_store_sk = s_store_sk 10 | AND time_dim.t_hour = 15 11 | AND time_dim.t_minute >= 30 12 | AND household_demographics.hd_dep_count = 7 13 | AND store.s_store_name = 'ese' 14 | ORDER BY Count(*) 15 | LIMIT 100; 16 | -------------------------------------------------------------------------------- /query97.sql: -------------------------------------------------------------------------------- 1 | 2 | -- start query 97 in stream 0 using template query97.tpl 3 | WITH ssci 4 | AS (SELECT ss_customer_sk customer_sk, 5 | ss_item_sk item_sk 6 | FROM store_sales, 7 | date_dim 8 | WHERE ss_sold_date_sk = d_date_sk 9 | AND d_month_seq BETWEEN 1196 AND 1196 + 11 10 | GROUP BY ss_customer_sk, 11 | ss_item_sk), 12 | csci 13 | AS (SELECT cs_bill_customer_sk customer_sk, 14 | cs_item_sk item_sk 15 | FROM catalog_sales, 16 | date_dim 17 | WHERE cs_sold_date_sk = d_date_sk 18 | AND d_month_seq BETWEEN 1196 AND 1196 + 11 19 | GROUP BY cs_bill_customer_sk, 20 | cs_item_sk) 21 | SELECT Sum(CASE 22 | WHEN ssci.customer_sk IS NOT NULL 23 | AND csci.customer_sk IS NULL THEN 1 24 | ELSE 0 25 | END) store_only, 26 | Sum(CASE 27 | WHEN ssci.customer_sk IS NULL 28 | AND csci.customer_sk IS NOT NULL THEN 1 29 | ELSE 0 30 | END) catalog_only, 31 | Sum(CASE 32 | WHEN ssci.customer_sk IS NOT NULL 33 | AND csci.customer_sk IS NOT NULL THEN 1 34 | ELSE 0 35 | END) store_and_catalog 36 | FROM ssci 37 | FULL OUTER JOIN csci 38 | ON ( ssci.customer_sk = csci.customer_sk 39 | AND ssci.item_sk = csci.item_sk ) 40 | LIMIT 100; 41 | -------------------------------------------------------------------------------- /query98.sql: -------------------------------------------------------------------------------- 1 | 2 | -- start query 98 in stream 0 using template query98.tpl 3 | SELECT i_item_id, 4 | i_item_desc, 5 | i_category, 6 | i_class, 7 | i_current_price, 8 | Sum(ss_ext_sales_price) AS itemrevenue, 9 | Sum(ss_ext_sales_price) * 100 / Sum(Sum(ss_ext_sales_price)) 10 | OVER ( 11 | PARTITION BY i_class) AS revenueratio 12 | FROM store_sales, 13 | item, 14 | date_dim 15 | WHERE ss_item_sk = i_item_sk 16 | AND i_category IN ( 'Men', 'Home', 'Electronics' ) 17 | AND ss_sold_date_sk = d_date_sk 18 | AND d_date BETWEEN CAST('2000-05-18' AS DATE) AND ( 19 | CAST('2000-05-18' AS DATE) + INTERVAL '30' DAY ) 20 | GROUP BY i_item_id, 21 | i_item_desc, 22 | i_category, 23 | i_class, 24 | i_current_price 25 | ORDER BY i_category, 26 | i_class, 27 | i_item_id, 28 | i_item_desc, 29 | revenueratio; 30 | -------------------------------------------------------------------------------- /query99.sql: -------------------------------------------------------------------------------- 1 | 2 | 3 | -- start query 99 in stream 0 using template query99.tpl 4 | SELECT Substr(w_warehouse_name, 1, 20), 5 | sm_type, 6 | cc_name, 7 | Sum(CASE 8 | WHEN ( cs_ship_date_sk - cs_sold_date_sk <= 30 ) THEN 1 9 | ELSE 0 10 | END) AS `30 days`, 11 | Sum(CASE 12 | WHEN ( cs_ship_date_sk - cs_sold_date_sk > 30 ) 13 | AND ( cs_ship_date_sk - cs_sold_date_sk <= 60 ) THEN 1 14 | ELSE 0 15 | END) AS `31-60 days`, 16 | Sum(CASE 17 | WHEN ( cs_ship_date_sk - cs_sold_date_sk > 60 ) 18 | AND ( cs_ship_date_sk - cs_sold_date_sk <= 90 ) THEN 1 19 | ELSE 0 20 | END) AS `61-90 days`, 21 | Sum(CASE 22 | WHEN ( cs_ship_date_sk - cs_sold_date_sk > 90 ) 23 | AND ( cs_ship_date_sk - cs_sold_date_sk <= 120 ) THEN 24 | 1 25 | ELSE 0 26 | END) AS `91-120 days`, 27 | Sum(CASE 28 | WHEN ( cs_ship_date_sk - cs_sold_date_sk > 120 ) THEN 1 29 | ELSE 0 30 | END) AS `>120 days` 31 | FROM catalog_sales, 32 | warehouse, 33 | ship_mode, 34 | call_center, 35 | date_dim 36 | WHERE d_month_seq BETWEEN 1200 AND 1200 + 11 37 | AND cs_ship_date_sk = d_date_sk 38 | AND cs_warehouse_sk = w_warehouse_sk 39 | AND cs_ship_mode_sk = sm_ship_mode_sk 40 | AND cs_call_center_sk = cc_call_center_sk 41 | GROUP BY Substr(w_warehouse_name, 1, 20), 42 | sm_type, 43 | cc_name 44 | ORDER BY Substr(w_warehouse_name, 1, 20), 45 | sm_type, 46 | cc_name 47 | LIMIT 100; 48 | --------------------------------------------------------------------------------