把你的语句复制出来吧,主要是不知道你数据源是如何的,到底要什么结果,目前你这个表达有点乱,一大堆sql。
哪一个是工作类型字段,原始数据是如何的。你把查询语句发出来。
比如oracel中数据明细类似这样

按classid拼的话
WITH classDate AS (
SELECT 1 classId, '张一' AS name, 15 age FROM dual
UNION ALL
SELECT 1 classId, '李一' AS name, 13 age FROM dual
UNION ALL
SELECT 1 classId, '王一' AS name, 12 age FROM dual
UNION ALL
SELECT 2 classId, '陈二' AS name, 12 age FROM dual
UNION ALL
SELECT 1 classId, '高一' AS name, 13 age FROM dual
UNION ALL
SELECT 2 classId, '佟二' AS name, 14 age FROM dual
)
SELECT
classId,
LISTAGG(name || ',' || age, ',') WITHIN GROUP (ORDER BY name) AS concatenated_info
FROM
classDate
GROUP BY
classId;

oracle中这个函数用法注意点
(1). 必须得分组,也就是说group by是必须的。
(2). listagg函数的第一个参数是需要显示的字段,也就是name;第二个参数是数值之间的分隔符;同时还需要进行排序和分组within group (order by name)