从共享相同字段值的一组行中仅取一行

syl*_*aar 1 sql sql-server

我有一个SQL Server 2008数据库,其中包含以下记录

001 CAT 1 2 3 
002 DOG 3 3 1
003 DOG 2 1 1
004 DOG 2 1 3
005 CAT 1 3 4
Run Code Online (Sandbox Code Playgroud)

我想为第2列(猫和狗)中的每个唯一值取1行

所以这会得到我(一个可能的答案):

001 CAT 1 2 3
002 DOG 3 3 1
Run Code Online (Sandbox Code Playgroud)

第1列是PK并且是一个字符串.第2列是一个字符串

第3-5列只是表明在最终结果中我还需要其他可变字段.

Ada*_*Dev 5

SELECT t1.* 
FROM YourTable t1
    JOIN 
    (SELECT MIN(Col1) AS FirstId 
     FROM YourTable GROUP BY Col2) x ON t1.Col1 = x.FirstId
Run Code Online (Sandbox Code Playgroud)