[英]mySQL GROUP_CONCAT different Separator each x results
在 mySQL 查詢中是一個
GROUP_CONCAT(fieldname SEPARATOR ', ')
但字段不宜過長。 因此我想要在 x 個數據集之后使用不同的分隔符(即每個第三個分隔符應該是 '\\n')
我很樂意為此獲得幫助。 謝謝!
這是一個真正的痛苦。 一種方法使用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 '; ')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.