Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 为SQL Server 2008中的每个不同ID选择前n个记录_Sql Server 2008 - Fatal编程技术网

Sql server 2008 为SQL Server 2008中的每个不同ID选择前n个记录

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

我正在尝试创建一个查询,该查询将提取表中每个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         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