title: T-SQL : Return variable amount of records based on the top value in a column
body: <p>If I have table:</p>
  
  <pre><code>+------------------------------------------------------------+
  |  Col 1                                     Col 2    Col 3  |
  +------------------------------------------------------------+
  |  a72195fa-57ca-4849-b423-5595219c8f6b      Val1     1      |
  |  a72195fa-57ca-4849-b423-5595219c8f6b      Val2     1      |
  |  a72195fa-57ca-4849-b423-5595219c8f6b      Val3     2      |
  |  a72195fa-57ca-4849-b423-5595219c8f6b      Val4     3      |
  |  2F6D0B9E-2221-4D18-A64E-ACCFB83EACC7      Val5     2      |
  |  2F6D0B9E-2221-4D18-A64E-ACCFB83EACC7      Val6     2      |
  |  2F6D0B9E-2221-4D18-A64E-ACCFB83EACC7      Val7     3      |
  +------------------------------------------------------------+
  </code></pre>
  
  <p>For a given Col 1 Value, how do I return all records for smallest value in Col3. Meaning where <code>[Col 1] = a72195fa-57ca-4849-b423-5595219c8f6b</code>, I want to return:</p>
  
  <pre><code>+------------------------------------------------------------+
  |  Col 1                                     Col 2    Col 3  |
  +------------------------------------------------------------+
  |  a72195fa-57ca-4849-b423-5595219c8f6b      Val1     1      |
  |  a72195fa-57ca-4849-b423-5595219c8f6b      Val2     1      |
  +------------------------------------------------------------+
  </code></pre>
  
  <p>And where <code>[Col 1] = 2F6D0B9E-2221-4D18-A64E-ACCFB83EACC7</code>, I want to return:</p>
  
  <pre><code>+---------------------------------------------------------+
  | Col 1                                   Col 2    Col 3  |
  +---------------------------------------------------------+
  | 2F6D0B9E-2221-4D18-A64E-ACCFB83EACC7    Val5     2      |
  | 2F6D0B9E-2221-4D18-A64E-ACCFB83EACC7    Val6     2      |
  +---------------------------------------------------------+
  </code></pre>