代码之家  ›  专栏  ›  技术社区  ›  sylvanaar

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

  •  1
  • sylvanaar  · 技术社区  · 15 年前

    我有一个包含如下记录的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
    

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

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

    001 CAT 1 2 3
    002 DOG 3 3 1
    

    第1列是pk,是一个字符串。 第2列是字符串

    第3-5列只是用来指示在最终结果中还需要其他变量字段。

    2 回复  |  直到 15 年前
        1
  •  5
  •   AdaTheDev    15 年前
    SELECT t1.* 
    FROM YourTable t1
        JOIN 
        (SELECT MIN(Col1) AS FirstId 
         FROM YourTable GROUP BY Col2) x ON t1.Col1 = x.FirstId
    
        2
  •  0
  •   brettkelly    15 年前
    SELECT pk, DISTINCT pet, col3, col4, col5 FROM myPetsTable
    

    这样行吗?在黑暗中拍摄:)