我有一个设置如下的表:
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/