Oracle Analytics Cloud专业版如何实现相同ID对应列内容的字符串拼接
Oracle Analytics Cloud 专业版实现同Branch-ID分行经理拼接的操作方案
核心逻辑:通过对Branch-ID分组匹配,将同组下的Branch Manager字段值用指定分隔符拼接,生成独立的新输出列。
具体操作流程
- 加载目标数据集,进入数据集编辑页面
在OAC的数据列表中找到待处理的数据集,点击打开进入编辑模式,确认页面中已经存在Branch-ID、Branch Manager两个原始字段。 - 创建计算列实现拼接逻辑
- 点击编辑页顶部工具栏的「新建列」选项,进入公式编辑界面
- 可直接使用OAC内置的字符串聚合函数
LISTAGG完成计算,两种配置方式二选一即可:- 可视化配置方式:选择「分组聚合列」模式,将
Branch-ID拖入「分组依据」区域,聚合函数选择LISTAGG,指定待拼接字段为Branch Manager,分隔符填写- - 手写公式方式:直接在公式编辑框输入窗口函数逻辑,无需额外配置分组项:
LISTAGG("Branch Manager", '-') OVER (PARTITION BY "Branch-ID")
- 可视化配置方式:选择「分组聚合列」模式,将
- 给新建列命名为
Combined Branch Manager,确认公式无语法报错
- 验证输出结果
逐行核对计算结果:相同Branch-ID下的所有分行经理值,会自动通过-连接为指定格式,例如Branch-ID=1对应的Bob、Sandra,会输出为Bob-Sandra,和预期的表结构完全匹配。 - 保存数据集
确认所有分组的拼接结果无错配、无值缺失后,保存数据集即可完成配置。
实操注意事项
- 如果同组内存在空的经理值,可在公式中增加空值过滤逻辑,避免拼接出多余的连字符,优化后的公式为:
LISTAGG(CASE WHEN "Branch Manager" IS NOT NULL THEN "Branch Manager" END, '-') OVER (PARTITION BY "Branch-ID")- 如果同组下存在重复的经理值,可在
LISTAGG函数中增加去重逻辑,避免同一个值被多次拼接- 采用窗口函数实现的方案,不会改动原数据集的明细行结构,不需要删除原有明细字段,即可实现“每行都携带对应Branch-ID全量经理拼接结果”的输出效果
内容的提问来源于stack exchange,提问作者Shubharthi Dey
相关产品推荐
相关产品推荐

