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

如何在DataWeave中按article汇总数组并计算ats_qty与最大po_date

DataWeave实现按article汇总数据的方案

需求说明

现有两个数组,需要按article字段进行汇总:

  • 累加对应ats_qty的值
  • 取该article对应的最大po_date值

输入数组

var array1 = [
    {
        "marketPlaceName": "A1",
        "article": "XX103030AE1100M",
        "ats_qty": "0",
        "po_date": "20230302"
    }
]

var array2 = [
    {
        "marketPlaceName": "A1",
        "article": "XX103030AE1100M",
        "ats_qty": "1",
        "po_date": "20230303"
    },
    {
        "marketPlaceName": "A1",
        "article": "XX103030AE1100L",
        "ats_qty": "2",
        "po_date": "20230302"
    }
]

实现代码

%dw 2.0
output application/json
var array1 = [
    {
        "marketPlaceName": "A1",
        "article": "XX103030AE1100M",
        "ats_qty": "0",
        "po_date": "20230302"
    }
]

var array2 = [
    {
        "marketPlaceName": "A1",
        "article": "XX103030AE1100M",
        "ats_qty": "1",
        "po_date": "20230303"
    },
    {
        "marketPlaceName": "A1",
        "article": "XX103030AE1100L",
        "ats_qty": "2",
        "po_date": "20230302"
    }
]
---
(array1 ++ array2) 
    groupBy ($.article) 
    pluck ((groupedItems, articleKey) -> {
        marketPlaceName: groupedItems[0].marketPlaceName,
        article: articleKey,
        ats_qty: (sum(groupedItems.ats_qty as Number)) as String,
        po_date: max(groupedItems.po_date)
    })

代码逻辑说明

  1. 合并数组:用++运算符将两个输入数组合并为一个数组
  2. 按article分组:使用groupBy函数,以article字段为键对合并后的数组分组
  3. 聚合处理每组数据:通过pluck遍历分组结果,对每组数据做以下处理:
    • marketPlaceName:取分组中第一个条目的值(假设同一article对应的marketPlaceName一致)
    • article:直接使用分组的键值
    • ats_qty:先将每组的ats_qty转为数字类型求和,再转回字符串类型,匹配预期输出格式
    • po_date:利用max函数直接取每组中的最大值(因po_date是格式统一的日期字符串,字典序与日期顺序一致,可直接比较)

预期输出

[
    {
        "marketPlaceName": "A1",
        "article": "XX103030AE1100M",
        "ats_qty": "1",
        "po_date": "20230303"
    },
    {
        "marketPlaceName": "A1",
        "article": "XX103030AE1100L",
        "ats_qty": "2",
        "po_date": "20230302"
    }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 18:30:27