0

我有这样的表:

| 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 名.....

4

3 回答 3

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
于 2013-03-12T12:13:34.400 回答
1

使用 ORDER BY 函数

SELECT COL1, COL2, COL3
FROM MyTable ORDER BY COl1, COl2, COl3
于 2013-03-12T12:14:16.960 回答
0

您不需要对这些数据进行分组,因为GROUP BY需要聚合一些列。而是使用 onlyORDER BY子句。

SELECT *
FROM    tableName
ORDER   BY Col1 ASC, Col2 ASC, Col3 ASC
于 2013-03-12T12:13:50.033 回答