SQL縱列單元值分組合併

2021-08-21 05:47:53 字數 983 閱讀 3335

原表

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 建立測試...