Sql 需要限制下表中每个顺序的行数吗?

Sql 需要限制下表中每个顺序的行数吗?,sql,sql-server-2008,group-by,Sql,Sql Server 2008,Group By,我的桌子是这样的: | Col1 | Col2 | col3 | |:-----------|------------:|:------------:| | type1 | 1 | aaaa | | type3 | 101 | bbbb | | type2 | 21 | cccc | | type1 |

我的桌子是这样的:

| Col1       | Col2        | col3         |
|:-----------|------------:|:------------:|
| type1      |      1      |     aaaa     |
| type3      |      101    |     bbbb     |
| type2      |      21     |     cccc     |
| type1      |      2      |     aaa      |
| type2      |      22     |     bbb      |
| type3      |      102    |     ccc      |
| type1      |      3      |     aaax     |
| type2      |      23     |     bbbx     |
| type3      |      103    |     cccx     |
我需要以下方式输出

| Col1       | Col2        | col3         |
|:-----------|------------:|:------------:|
| type1      |      1      |     aaaa     |
| type1      |      2      |     aaa      |
| type1      |      3      |     aaax     |
|
| type2      |      21     |     cccc     |
| type2      |      22     |     bbb      |
| type2      |      23     |     bbbx     |
|
| type3      |      101    |     bbbb     |
| type3      |      102    |     ccc      |
| type3      |      103    |     cccx     |
请想办法得到这样的结果 我在这个表中有很多记录,但我需要以相同的顺序获得每种类型的前5名…..

试试:

SELECT Col1, 
        Col2, 
        Col3 
FROM(
    SELECT 
        Col1, 
        Col2, 
        Col3, 
        ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Col1, Col2, Col3) RNum
    FROM YourTable 
)X WHERE RNum<=5

您不需要对这些数据进行分组,因为group BY需要聚合一些列。但是,只使用ORDERBY子句


使用orderby函数

SELECT COL1, COL2, COL3
FROM MyTable ORDER BY COl1, COl2, COl3

我已经编辑了我的问题。。。你能稍微检查和更新你的查询吗?
SELECT COL1, COL2, COL3
FROM MyTable ORDER BY COl1, COl2, COl3