原表
id,task_id,current_unit_id
42688645,30404829,104
42688647,30404829,128
42688648,30404829,117
42688650,30404829,118
42688652,30404829,119
42688653,30404829,120
42688682,30404842,104
42688683,30404842,128
42688685,30404842,117
需要將current_unit_id按照id的順序,以task_id 組合成乙個單元
效果如下:
task_id,unit
30404842,104,117,128
30404829,104,117,118,119,120,128
使用concat_ws 及collect_set函式
collect_set 可以使一列單元值成為乙個array單元值,但是內值需要轉為string
concat_ws 是轉置成向量後以指定符號粘合,需要配合group by使用
select distinct s.task_id,concat_ws(',',collect_set(s.current_unit_id)) as task_process
from
( select distinct s1.id, s1.task_id,cast(s1.current_unit_id as string ) as current_unit_id
from s1
where s1.pt = '20180703'
and task_id in(30404842,30404829)
order by s1.id limit 900000000
) sgroup by s.task_id
mysql合併分組 MYSQL 分組合併函式
mysql中group concat函式 完整的語法如下 group concat distinct 要連線的字段 order by asc desc 排序字段 separator 分隔符 基本查詢 mysql select from aa id name 1 10 1 20 1 20 2 20 3...
學習筆記 SQL語句處理分組合併
今天在博問上看到乙個sql語句需求 表結構 id name 1 羅濤 1 濤帥帥 2 劉亮 2 亮哥 2 亮傻 要得出結果 id name 1 羅濤,濤帥帥 2 劉亮,亮哥,亮傻 這是乙個典型的分組合併的需求,一般有兩種方法,一是寫乙個函式處理,二是用xml for path方法,如下 1 建立測試...
學習筆記 SQL語句處理分組合併
今天在博問上看到乙個sql語句需求 表結構 id name 1 羅濤 1 濤帥帥 2 劉亮 2 亮哥 2 亮傻 要得出結果 id name 1 羅濤,濤帥帥 2 劉亮,亮哥,亮傻 這是乙個典型的分組合併的需求,一般有兩種方法,一是寫乙個函式處理,二是用xml for path方法,如下 1 建立測試...