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

ORDERBY関数を使用する

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

一部の列を集約GROUP BYする必要があるため、このデータをグループ化する必要はありません。ただし、代わりに、句のみを使用してください。ORDER BY

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