sql-server-2005 - T-SQL,选择一组的第一行

标签 sql-server-2005 tsql

我有一个设置如下的表:

ID        int
Hash      varchar
OtherID   int

一些示例数据:

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

我希望能够仅提取每个哈希集的第一行:

1   3pm6Qav1Vd   23
5   RSUBe2VBtl   2

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

最佳答案

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

关于sql-server-2005 - T-SQL,选择一组的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7352966/

相关文章:

java - 如何使用java执行t-sql脚本?

sql - 新手 SQL 更新问题

tsql - 如何在 SQL 中创建可更新的 View

sql - 如何按 "all others"的前 N ​​个类别和总计进行聚合?

sql - 按查询分组没有返回我期望的结果

sql-server - 如何创建 SQL Server 2005 CTE 以返回具有多个父项的子项的父子记录

database - 完全执行您的数据模型或不完全执行您的数据模型

sql - 如何使用可变数据库?

sql-server - 在 SQL Server 中创建函数?

algorithm - 从 FirstName、LastName 和 MiddleName 生成单词排列