q44.sql 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. SELECT
  2. asceding.rnk,
  3. i1.i_product_name best_performing,
  4. i2.i_product_name worst_performing
  5. FROM (SELECT *
  6. FROM (SELECT
  7. item_sk,
  8. rank()
  9. OVER (
  10. ORDER BY rank_col ASC) rnk
  11. FROM (SELECT
  12. ss_item_sk item_sk,
  13. avg(ss_net_profit) rank_col
  14. FROM store_sales ss1
  15. WHERE ss_store_sk = 4
  16. GROUP BY ss_item_sk
  17. HAVING avg(ss_net_profit) > 0.9 * (SELECT avg(ss_net_profit) rank_col
  18. FROM store_sales
  19. WHERE ss_store_sk = 4
  20. AND ss_addr_sk IS NULL
  21. GROUP BY ss_store_sk)) V1) V11
  22. WHERE rnk < 11) asceding,
  23. (SELECT *
  24. FROM (SELECT
  25. item_sk,
  26. rank()
  27. OVER (
  28. ORDER BY rank_col DESC) rnk
  29. FROM (SELECT
  30. 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 * (SELECT avg(ss_net_profit) rank_col
  36. FROM store_sales
  37. WHERE ss_store_sk = 4
  38. AND ss_addr_sk IS NULL
  39. GROUP BY ss_store_sk)) V2) V21
  40. WHERE rnk < 11) descending,
  41. item i1, item i2
  42. WHERE asceding.rnk = descending.rnk
  43. AND i1.i_item_sk = asceding.item_sk
  44. AND i2.i_item_sk = descending.item_sk
  45. ORDER BY asceding.rnk
  46. LIMIT 100