我有这样的表:
| 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 |
请找一些方法来获得这种输出 我在这张表中有很多记录,但我需要以相同的顺序获得每个TYPE的前5名......
答案 0 :(得分:1)
尝试:
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
答案 1 :(得分:1)
使用ORDER BY功能
SELECT COL1, COL2, COL3
FROM MyTable ORDER BY COl1, COl2, COl3
答案 2 :(得分:0)
您无需对此数据进行分组,因为GROUP BY
需要聚合某些列。但相反,只使用ORDER BY
子句。
SELECT *
FROM tableName
ORDER BY Col1 ASC, Col2 ASC, Col3 ASC