Sql server 2008 为SQL Server 2008中的每个不同ID选择前n个记录
我正在尝试创建一个查询,该查询将提取表中每个id的前10条记录 听起来像这样:Sql server 2008 为SQL Server 2008中的每个不同ID选择前n个记录,sql-server-2008,Sql Server 2008,我正在尝试创建一个查询,该查询将提取表中每个id的前10条记录 听起来像这样: select distinct top 2 id, column1 from table group by id, column1 ID Column1 1 ab 1 ac 1 ad 2 df 2 gf 2 dfdf 2 hgf 3 wa 3 hgh 3
select distinct top 2 id, column1 from table group by id, column1
ID Column1
1 ab
1 ac
1 ad
2 df
2 gf
2 dfdf
2 hgf
3 wa
3 hgh
3 dfgg
4 fgfgg
因此上表将返回每个ID的前两个结果,如下所示:
ID Column1
1 ab
1 ac
2 df
2 gf
3 wa
3 hgh
4 fgfgg
行数对于这类事情非常有用
排号就是你要找的。是的!谢谢,工作就像我需要的一样。我在这方面有点混乱,但通过一点研究和提供的链接就知道了。你如何定义前10个?当ID相同时,如何确定序列?
SELECT * FROM (
SELECT
ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) as RowNum,
ID,
Column1
FROM
Table
) MyData
WHERE RowNum < 10