-1

column_id によって次のような結果セットがあるとします: 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4

私はすでに通常の「asc順」を試しましたが、返されました:

1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4

ただし、必要な結果セットは次のとおりです。

1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4

「グループ化」関数も使用されます。集計関数で使用されるため、結果の最初のセットのみが返されます: 1,2,3,4

これを解決するのを手伝ってください。

4

1 に答える 1

0

目的の結果セットにユーザー定義変数を使用できます

SELECT column_id
FROM (
SELECT column_id,
@r:= CASE WHEN @g = column_id THEN @r + 1 ELSE 1 END seq,
@g:= column_id
FROM table1
CROSS JOIN (SELECT @g:= NULL,@r:=0) t
ORDER BY column_id
) t1
ORDER BY seq,column_id
于 2015-05-14T07:04:57.583 に答える