我的表格如下:
insert into testing values
('0547366'),
('0547367'),
('0547368'),
('0547369'),
('0547370'),
('0547371'),
('0547372'),
('0547373'),
('0547374'),
('0547375'),
('0547376');
以下是值:
select group_concat(bnum) as nums from testing;
我使用了以下查询:
+============
nums
+============
0547366,0547367,0547368,0547369,0547370,0547371,0547372,0547373,0547374,0547375,0547376
+============
并获得以下结果:
+============
nums
+============
0547366,0547367,0547368
+============
0547369,0547370,0547371
+============
0547372,0547373,0547374
+============
0547375,0547376
+============
但我希望得到以下结果,其中我需要多组数字,其中每组中的3个数字用逗号分隔:
HRtest[,14:176][HRtest[,14:176] > 0] <- 1
如何编写此查询?
答案 0 :(得分:1)
select GROUP_CONCAT(bnum),@cnt := @cnt+1,concat('a',@cnt1),
case when MOD(@cnt,3)=0 then @cnt1:=@cnt1+1 end,@cnt1
from testing,(SELECT @cnt :=0,@cnt1:=0)z GROUP BY @CNT1 ORDER BY@CNT;
您可以尝试以上查询。
Fiddle Demo就在这里。