-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 回答