MYSQL按列的替代结果集排序

时间:2015-05-14 06:48:13

标签: mysql sorting group-by sql-order-by alternate

假设我们的结果集类似于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

也使用“group by”函数,因为它与聚合函数一起使用,它只返回第一组结果:1,2,3,4

请帮我解决这个问题。

1 个答案:

答案 0 :(得分: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