开发者

T-SQL, Select first row of a set

I have a table that is setup like so:

ID        int
Hash      varchar
OtherID   int

Some Example data:

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

I would like to be able to pull out just the first row of each hash set:

1   3pm6Qav1Vd   23
5   RSUBe2VBtl   2

The rows would each be the lowest ID for each Hash. 开发者_StackOverflow中文版I'm using T-SQL on SQL Server 2005. I'm not really sure where to begin on this one.


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


select ID, Hash, OtherId
from (
 select ID, Hash, OtherId, row_number() over (partition by Hash order by ID) as RN
 from yourtable
) a
where RN = 1


Simple!

SELECT * 
FROM [tableName] 
WHERE ID IN (
    SELECT MIN(ID)    
    FROM [tableName] 
    GROUP BY Hash
)

Hope this helps.


Do something like below

         SELECT *  FROM Table T1 
        INNER JOIN (  
                    SELECT MIN(ID) ID  FROM Table     GROUP BY Hash) T2
         ON T1. ID = T2.ID

Hope this helps!!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜