q89.sql 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. --!syntax_pg
  2. --TPC-DS Q89
  3. -- start query 1 in stream 0 using template ../query_templates/query89.tpl
  4. select *
  5. from(
  6. select i_category, i_class, i_brand,
  7. s_store_name, s_company_name,
  8. d_moy,
  9. sum(ss_sales_price) sum_sales,
  10. avg(sum(ss_sales_price)) over
  11. (partition by i_category, i_brand, s_store_name, s_company_name)
  12. avg_monthly_sales
  13. from plato.item, plato.store_sales, plato.date_dim, plato.store
  14. where ss_item_sk = i_item_sk and
  15. ss_sold_date_sk = d_date_sk and
  16. ss_store_sk = s_store_sk and
  17. d_year in (2000) and
  18. ((i_category in ('Home','Books','Electronics') and
  19. i_class in ('wallpaper','parenting','musical')
  20. )
  21. or (i_category in ('Shoes','Jewelry','Men') and
  22. i_class in ('womens','birdal','pants')
  23. ))
  24. group by i_category, i_class, i_brand,
  25. s_store_name, s_company_name, d_moy) tmp1
  26. where case when (avg_monthly_sales <> 0::numeric) then (abs(sum_sales - avg_monthly_sales) / avg_monthly_sales) else null::numeric end > 0.1::numeric
  27. order by sum_sales - avg_monthly_sales, s_store_name
  28. limit 100;
  29. -- end query 1 in stream 0 using template ../query_templates/query89.tpl