title: SQL: How to select items from a table with the highest percentage of change
body: <p>Ok, I'm totally stumped.</p>
  
  <p>I have a table GROCERY_PRICES.</p>
  
  <p>In it there is data for GROCERY_ITEM, PRICE_IN_2012, and ESTIMATED_PRICE_IN_2042.</p>
  
  <p>I need to Write a SQL SELECT statement that finds the items having the highest percentage of price increase. And then sort by GROCERY_ITEM.</p>
  
  <p>I cannot for the life of me figure out how to grab the three items with the highest percentage of change over the time period using the data in the table.</p>
  
  <p>This is the code I have, it returns all the data I need, but for every GROCERY_ITEM rather than the three items with the highest percentage of change.  I know it's 310 but I can't hardcode that number in.</p>
  
  <pre><code>SELECT grocery_item, 
         price_in_2012, 
         ESTIMATED_PRICE_IN_2042, 
         sum((ESTIMATED_PRICE_IN_2042 - PRICE_IN_2012) / PRICE_IN_2012) * 100 as Percent_Change
  FROM grocery_prices 
  GROUP BY grocery_item, 
           price_in_2012, 
           ESTIMATED_PRICE_IN_2042
  ORDER BY grocery_item;
  </code></pre>
  
  <p>I know I need to use a subquery, but I have no idea how to go about it.</p>
  
  <p>Thanks.</p>
  
  <p>EDIT:  Some sample data:</p>
  
  <p><img src="https://i.imgur.com/tQRvjSc.png" alt="Sample Data"></p>