You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Factory中按GroupID动态创建列合并数据

行转列(Pivot)实现方案

针对你的需求,核心是实现行转列(Pivot):按name分组后,根据charge的取值将amount映射到对应列。你用window aggregate未得到正确结果,大概率是没结合条件聚合来筛选对应charge的数值。

核心实现逻辑

对每个目标列(如chargeXX、chargeYY),用条件判断匹配对应的charge值,提取对应的amount。由于每个name+charge组合仅一条数据,用MAX()或MIN()聚合函数即可精准拿到对应值(单值聚合不影响结果)。

示例SQL实现

如果用SQL处理,代码如下:

SELECT
    name,
    MAX(CASE WHEN charge = 'chargeXX' THEN amount END) AS chargeXX,
    MAX(CASE WHEN charge = 'chargeYY' THEN amount END) AS chargeYY
FROM
    your_table
GROUP BY
    name;

将your_table替换为你的实际表名,执行后即可得到目标宽表结构。

针对Window Aggregate Flowlet的调整

若必须使用window aggregate组件:

  • 窗口键设为name,按name分组
  • 为每个目标列添加条件聚合计算:
    • 计算chargeXX列时,设置过滤条件为charge = 'chargeXX',聚合函数选择MAX(amount)(或MIN(amount))
    • 计算chargeYY列时,设置过滤条件为charge = 'chargeYY',同样使用MAX(amount)
  • 最后按name去重,保留每组唯一行

这样就能确保每个name对应一行,且chargeXX、chargeYY列正确填充对应amount值。

内容的提问来源于stack exchange,提问作者Julian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 19:32:07