现在报表统计需要将多行数据转行成一行记录。
目前结果:
客户ID 客户姓名 问题序号 答案内容 SEQ
100034257 133503 1 2 1
100034257 133503 1 3 2
100034257 133503 2 3 2
100034257 133503 3 2 1
100034257 133503 3 4 2
100034258 133504 1 2 1
100034258 133504 2 3 1
100034258 133504 3 4 1即将同一客户ID和问题序号相同的记录用一条记录实现,答案内容通过字符串拼接实现
想实现结果:
客户ID 客户姓名 问题序号 答案内容
100034257 133503 1 23
100034257 133503 2 3
100034257 133503 3 24
100034258 133504 1 2
100034258 133504 2 3
100034258 133504 3 4
目前结果:
客户ID 客户姓名 问题序号 答案内容 SEQ
100034257 133503 1 2 1
100034257 133503 1 3 2
100034257 133503 2 3 2
100034257 133503 3 2 1
100034257 133503 3 4 2
100034258 133504 1 2 1
100034258 133504 2 3 1
100034258 133504 3 4 1即将同一客户ID和问题序号相同的记录用一条记录实现,答案内容通过字符串拼接实现
想实现结果:
客户ID 客户姓名 问题序号 答案内容
100034257 133503 1 23
100034257 133503 2 3
100034257 133503 3 24
100034258 133504 1 2
100034258 133504 2 3
100034258 133504 3 4
replace(max(sys_connect_by_path(result,',')),',','')result
from (
select tt.*,row_number()over(partition by id,qid order by rownum)rn from tt)
start with rn=1
connect by prior rn=rn-1
group by id,name,qid
from
(select temp.*, replace(sys_connect_by_path(答案内容,'#'),'#','') answer
from
(select tt.*, row_number() over(partition by 客户ID,客户姓名,问题序号 order by seq asc) rn
from tt) temp
start with rn=1 connect by prior rn=rn-1)
where rn=1