title: Alternative to using ROW_NUMBER for better performance
body: <p>I have a small query below where it outputs a row number under the <code>RowNumber</code> column based on  partitioning the 'LegKey' column and ordering by UpdateID desc. This is so the latest updated row (UpdateID) per legkey is always number 1</p>
  
  <pre><code>SELECT *
  , ROW_NUMBER() OVER(PARTITION BY LegKey ORDER BY UpdateID DESC) AS RowNumber 
  FROM Data.Crew
  </code></pre>
  
  <p>Data outputted:</p>
  
  <pre><code>UpdateID    LegKey  OriginalSourceTableID   UpdateReceived          RowNumber
  7359        6641    11                     2016-08-22 16:35:27.487  1
  7121        6641    11                     2016-08-15 00:00:47.220  2
  8175        6642    11                     2016-08-22 16:35:27.487  1
  7122        6642    11                     2016-08-15 00:00:47.220  2
  8613        6643    11                     2016-08-22 16:35:27.487  1
  7123        6643    11                     2016-08-15 00:00:47.220  2
  </code></pre>
  
  <p>The problem I have with this method is that I am getting slow performance because I assume I am using the ORDER BY.</p>
  
  <p>My question is that is there an alternative way to produce a similar result but have my query run faster? I am thinking a <code>MAX()</code> may work but I didn't get the same output as before. Maybe I did the <code>MAX()</code> statement incorrectly so was wondering if this is a good alternative if somebody can provide an example on how they would write the <code>MAX()</code> statement for this example?</p>
  
  <p>Thank you</p>