在mySQL查询中是
GROUP_CONCAT(fieldname SEPARATOR ', ')
但字段with不应太长。 因此,我希望在x个数据集之后使用一个不同的分隔符(即每个第三个分隔符应为'\ n')
我很乐意为此寻求帮助。 谢谢!
答案 0 :(得分:0)
这真是痛苦。一种方法使用lead()
将三个值组合在一起,然后将这些值过滤为每三个值:
select x,
group_concat(col_3 separator '; ')
from (select t.x,
concat_ws(', ',
col,
lead(col, 1) over (order by ?),
lead(col, 2) over (order by ?)
) as col_3
row_number() over (partition by x order by ?) as seqnum
from t
) t
where mod(seqnum, 3) = 1
group by x;
如果需要其他聚合,则可以过滤group_concat()
:
select x,
group_concat(case when mod(seqnum, 3) = 1 then col_3 end separator '; ')