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