SELECT  asceding.rnk,
              i1.i_product_name  best_performing,
              i2.i_product_name  worst_performing
FROM
    (SELECT  *
      FROM
          (SELECT  item_sk,
                          rank()  OVER  (
                                                    ORDER  BY  rank_col  ASC)  rnk
            FROM
                (SELECT  ss_item_sk  item_sk,
                                avg(ss_net_profit)  rank_col
                  FROM  store_sales  ss1
                  WHERE  ss_store_sk  =  4
                  GROUP  BY  ss_item_sk
                  HAVING  avg(ss_net_profit)  >  0.9*
                      (SELECT  avg(ss_net_profit)  rank_col
                        FROM  store_sales
                        WHERE  ss_store_sk  =  4
                            AND  ss_addr_sk  IS  NULL
                        GROUP  BY  ss_store_sk))V1)V11
      WHERE  rnk  <  11)  asceding,
    (SELECT  *
      FROM
          (SELECT  item_sk,
                          rank()  OVER  (
                                                    ORDER  BY  rank_col  DESC)  rnk
            FROM
                (SELECT  ss_item_sk  item_sk,
                                avg(ss_net_profit)  rank_col
                  FROM  store_sales  ss1
                  WHERE  ss_store_sk  =  4
                  GROUP  BY  ss_item_sk
                  HAVING  avg(ss_net_profit)  >  0.9*
                      (SELECT  avg(ss_net_profit)  rank_col
                        FROM  store_sales
                        WHERE  ss_store_sk  =  4
                            AND  ss_addr_sk  IS  NULL
                        GROUP  BY  ss_store_sk))V2)V21
      WHERE  rnk  <  11)  descending,
          item  i1,
          item  i2
WHERE  asceding.rnk  =  descending.rnk
    AND  i1.i_item_sk=asceding.item_sk
    AND  i2.i_item_sk=descending.item_sk
ORDER  BY  asceding.rnk
LIMIT  100;