 <p>With a <strong>big assumption</strong> that <code>Value</code> only increases as the <code>Date</code> increases...</p> <pre><code>SELECT Symbol, MAX(Date) AS Date, MAX(Value) AS Value FROM YourTable GROUP BY Symbol </code></pre> <p>If that assumption can't be made, then there's a problem as you have no way to uniquely identify a row. If you have an IDENTITY column for example, you would find the record for each symbol with the latest Date, and the highest ID. Without the ID field, you don't actually know which record was the latest to be inserted (if there are 2 with the same Date), so have to do something like above.</p> <p><strong>If</strong> you will never have the same Date value for a given symbol (i.e. the symbol + Date together are unique) then you can do:</p> <pre><code>SELECT s.Symbol, s.Date, s.Value FROM YourTable s JOIN ( SELECT Symbol, MAX(Date) AS LatestDate FROM YourTable GROUP BY Symbol ) s2 ON s.Symbol = s2.Symbol AND s.Date = s2.LatestDate </code></pre> <p>That will then not matter if Value only ever increases over time.</p>