簡體   English   中英

mySQL GROUP_CONCAT 不同的分隔符每個 x 結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM