1
0

query89.sql 1.1 KB

1234567891011121314151617181920212223242526272829
  1. select *
  2. from(
  3. select i_category, i_class, i_brand,
  4. s_store_name, s_company_name,
  5. d_moy,
  6. sum(ss_sales_price) sum_sales,
  7. avg(sum(ss_sales_price)) over
  8. (partition by i_category, i_brand, s_store_name, s_company_name)
  9. avg_monthly_sales
  10. from item, store_sales, date_dim, store
  11. where store_sales.ss_item_sk = item.i_item_sk and
  12. store_sales.ss_sold_date_sk = date_dim.d_date_sk and
  13. store_sales.ss_store_sk = store.s_store_sk and
  14. store_sales.ss_sold_date between '2000-01-01' and '2000-12-31' and
  15. d_year in (2000) and
  16. ((i_category in ('Home','Books','Electronics') and
  17. i_class in ('wallpaper','parenting','musical')
  18. )
  19. or (i_category in ('Shoes','Jewelry','Men') and
  20. i_class in ('womens','birdal','pants')
  21. ))
  22. group by i_category, i_class, i_brand,
  23. s_store_name, s_company_name, d_moy) tmp1
  24. where case when (avg_monthly_sales <> 0) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null end > 0.1
  25. order by sum_sales - avg_monthly_sales, s_store_name
  26. limit 100;