T-SQL,选择一组的第一行

Jus*_*808 4 t-sql sql-server-2005

我有一个像这样设置的表:

ID        int
Hash      varchar
OtherID   int
Run Code Online (Sandbox Code Playgroud)

一些示例数据:

1   3pm6Qav1Vd   23
2   3pm6Qav1Vd   2
3   3pm6Qav1Vd   19
4   3pm6Qav1Vd   17
5   RSUBe2VBtl   2
6   3pm6Qav1Vd   4
7   3pm6Qav1Vd   21
8   RSUBe2VBtl   23
9   RSUBe2VBtl   19
Run Code Online (Sandbox Code Playgroud)

我希望能够拉出每个哈希集的第一行:

1   3pm6Qav1Vd   23
5   RSUBe2VBtl   2
Run Code Online (Sandbox Code Playgroud)

每行都是每个哈希的最低ID.我在SQL Server 2005上使用T-SQL.我不确定从哪里开始.

Joe*_*lli 7

SELECT t.ID, t.Hash, t.OtherID
    FROM (SELECT ID, Hash, OtherID, ROW_NUMBER() OVER(PARTITION BY Hash ORDER BY ID) AS RowNum
              FROM YourTable) t
    WHERE t.RowNum = 1
Run Code Online (Sandbox Code Playgroud)