翔宇工作流
  • 首页
  • 分类
    • Make教程
    • n8n教程
    • 工作流效果
    • 自媒体
    • SEO
    • TikTok Shorts 短视频
    • 跨境电商
    • Youtube
    • NCA
    • AI教程与资料
    • 微信公众号
    • 小红书
    • 提示词
    • RSS
    • 多模态
    • DeepSeek
    • 免费
  • AI自动化赚钱
  • AI自动化工作流
  • 工作流教程
    • Make中文教程
    • n8n中文教程
  • 国内小报童
  • 国际BMC
  • Youtube
Make中文教程:自动化基础
https://youtu.be/RxEZLCvd24M?si=iHd7zW-UhgxdYAop
小红书自动化:如何利用Make制作个人自媒体中心,批量生成爆款笔记
https://youtu.be/e4cHFKmOGQQ?si=EpXr4CIoGmqvnUV9
微信公众号图文混排文章自动化实战:利用Make 批量制作
https://youtu.be/cqK9hYF8jPk?si=SorVpXyW34rJUIgL
翔宇工作流
7K
215
0
翔宇工作流
  • 首页
  • 分类
    • Make教程
    • n8n教程
    • 工作流效果
    • 自媒体
    • SEO
    • TikTok Shorts 短视频
    • 跨境电商
    • Youtube
    • NCA
    • AI教程与资料
    • 微信公众号
    • 小红书
    • 提示词
    • RSS
    • 多模态
    • DeepSeek
    • 免费
  • AI自动化赚钱
  • AI自动化工作流
  • 工作流教程
    • Make中文教程
    • n8n中文教程
  • 国内小报童
  • 国际BMC
  • Youtube
  • n8n中文教程

小白都能学会!n8n Aggregate、Merge、Summarize 节点完全解析

  • 翔宇工作流
  • 2025年5月2日
Total
0
Shares
0
0
翔宇Make-n8n教程

大家好,我是翔宇,专注于 AI 与自动化。欢迎来到「翔宇工作流」频道!在这里,我会用最通俗易懂的方式,帮你搞定各种自动化场景。

今天要带大家深入了解 n8n 的数据处理利器——Combine Items 功能下的三大核心节点:

  • Aggregate(聚合)
  • Merge(合并)
  • Summarize(汇总)

无论是自动回复邮件、社交媒体管理,还是数据库同步,只要你灵活运用这三大节点,就能让工作流效率瞬间飙升!

当然,由于翔宇的实践经验有一定局限性,本教程可能存在一些疏漏或不准确之处。恳请各位读者理解,也欢迎指正和补充,以便共同进步。

接下来的教程里,我会:

  1. 逐一讲解每个节点的作用与典型应用场景
  2. 详解设置界面中的各项配置含义与最佳实践
  3. 对比它们的原理和使用时机,教你如何避免常见误区
  4. 零代码基础也没关系,一步步手把手带你掌握。准备好了吗?跟着我一起,解锁 n8n 数据处理的全新能力吧!
目录 隐藏
1 n8n 基础快速回顾
2 深入了解 Aggregate 节点:数据收集器
3 深入了解 Merge 节点:数据流交汇点
4 深入了解 Summarize 节点:数据汇总大师
5 功能对比:Aggregate vs Merge vs Summarize
6 总结与后续学习

n8n 基础快速回顾

在深入了解这三个节点前,咱们先快速过一下 n8n 的基本概念,这样后面学起来更轻松。

  • 节点 (Node): 想象成搭积木,每个节点就是一块积木,代表一个具体操作。比如“读邮件”是一块,“发 Slack 消息”是另一块。咱们要学的 Aggregate, Merge, Summarize 也是节点,它们是 n8n 自带的核心节点,用来做通用的数据处理。
  • 工作流 (Workflow): 就是你用好多节点搭起来的一个自动化流程。数据会像水一样,从一个节点流到下一个节点,一步步被处理。
  • Item (项目): 在 n8n 里,数据是以 “Item” 的形式流动的。你可以把一个 Item 看作一条记录,比如一封邮件、一个客户信息、一条订单。一个节点通常会处理一批 Items。理解 Item 很重要,因为咱们要学的三个节点都是跟处理 Items 打交道的。
    • 小提示: 在 n8n 内部,数据通常是这样的一串东西:[{ "json": { ...数据1... } }, { "json": { ...数据2... } }]。每个 { "json": {...} } 就是一个 Item。你暂时不用管代码细节,知道数据是一条条来的就行。
  • 触发节点 (Trigger Node): 每个工作流都要有个“开关”,这就是触发节点。它负责启动流程,比如“每小时跑一次”、“收到新邮件时启动”等等。
  • 动作节点 (Action Node): “开关”后面的节点基本都是动作节点,它们干具体的活儿,比如拿数据、处理数据、发数据。Aggregate, Merge, Summarize 都属于动作节点。
  • 连接线 (Connection): 就是连着节点的线,告诉数据该往哪走。

了解了这些,咱们就可以自信地去认识 Aggregate, Merge 和 Summarize 这三个强大的节点了!

Screenshot

深入了解 Aggregate 节点:数据收集器

节点简介:它是干嘛的?

核心功能: Aggregate 节点的作用很简单,就是把 很多个输入 Item 里面,你 指定字段 的值,全都 收集 起来,放到 一个输出 Item 里的一个 列表(数组) 里。

  • 打个比方: 你有很多水果篮(输入的 Items),每个篮子里有苹果、香蕉、梨(字段)。你想把所有篮子里的“苹果”(指定字段)都挑出来,放进一个大篮子(输出 Item)里,形成一个“苹果列表”。Aggregate 就是干这个“挑苹果”的活儿。它只关心你指定的那个字段。

典型应用场景:什么时候用它?

  • 收集 ID 列表: 从一堆客户信息里,把所有客户 ID 提出来放一起,方便后面批量查数据库或调用 API。
  • 汇总名单: 从一堆联系人里,把所有名字或邮箱收集起来,生成一个名单。
  • 准备循环数据: 有时候你需要对一组特定的值进行循环处理,可以先用 Aggregate 把它们收集起来。(虽然 n8n 很多节点能自动循环)
  • 合并分散信息: 如果某个信息(比如一个订单里的所有商品编号)分散在好几个 Item 里,可以用 Aggregate 把它们收进一个列表。
  • 实例: 处理分页数据(比如爬虫翻页)或者循环操作后,把每次得到的部分结果(比如 AI 分析的关键词)重新聚合到一个 Item 里,方便最后统一处理或发送。

详细使用方法

  1. 添加节点: 在工作流画布上点 + 号,搜索 “Aggregate”,添加它
  2. 连接输入: 把前面输出多个 Items 的节点连到 Aggregate 的输入端。
  3. 配置节点 (关键步骤):
    • 告诉它你要收集 哪个字段 (Input Field Name)。
    • 给收集好的列表起个名字 (Output Field Name)。
    • 选择聚合模式 (Individual Fields 最常用)。
  4. 测试: 点节点上的 “Test step”,看看输出是不是只有一个 Item,并且里面有个列表,装着你想要收集的所有值。

示例: 假设上游节点输出了 3 个代表用户的 Item:

输入数据 (Input):[ { “json”: { “id”: 1, “name”: “Alice”, “city”: “New York” } }, { “json”: { “id”: 2, “name”: “Bob”, “city”: “London” } }, { “json”: { “id”: 3, “name”: “Charlie”, “city”: “New York” } } ] ​

  • 目标: 收集所有用户的 name 到一个列表里。
  • 配置:
    • Aggregate: Individual Fields
    • Input Field Name: name
    • (推荐) 打开 Rename Field 开关
    • Output Field Name: user_names
  • 测试输出 (Output):[ { "json": { "user_names": [ "Alice", "Bob", "Charlie" ] } } ] ​看!输出只有一个 Item,里面有个叫 user_names 的列表,包含了所有输入 Item 的 name 值。

节点设置详解

  • Aggregate (聚合模式):
    • Individual Fields (聚合指定字段): 最常用。
      • Input Field Name: 输入你想收集值的字段名,比如 name, email。想收集嵌套字段(如 user.address.city)?直接用点 . 就行 (除非你关了 Disable Dot Notation)。
      • Rename Field: 默认关。强烈建议打开,然后给你的列表起个好名字 (Output Field Name)。如果要同时收集多个字段,必须给每个字段都打开这个并起不同的名字。
      • Output Field Name: 给收集好的列表起个名,比如 collected_ids, all_names。
      • (点 “Add Field” 添加更多): 可以同时收集好几个不同字段的值,每个都会生成一个列表。
    • All Item Data (聚合所有项目数据): 把每个输入 Item 的全部或部分数据作为一个整体,收集到一个列表里。
      • Put Output in Field: 指定包含所有 Item 数据列表的那个字段叫啥名。
      • Include: 控制每个 Item 的哪些字段要被包含进来 (All fields / Specified Fields / All Fields Except)。
  • Options (选项):
    • Disable Dot Notation: (仅限 Individual Fields) 默认关。推荐保持关闭,这样才能方便地用 . 访问嵌套字段。
    • Merge Lists: (仅限 Individual Fields) 默认关。如果你要收集的字段本身就是个列表(比如商品的 tags),你想把所有这些小列表 合并成一个大平铺列表,而不是一个装着好几个列表的列表(列表的列表),那就打开它。
      • 例子: 输入 [{ "json": { "tags": ["A", "B"] } }, { "json": { "tags": ["C"] } }], 收集 tags。
      • Merge Lists 关 (默认): 输出 [["A", "B"], ["C"]] (列表的列表)。
      • Merge Lists 开: 输出 ["A", "B", "C"] (平铺列表)。
      • 推荐: 看你下一步需要啥格式。如果需要平铺列表,就打开。
    • Include Binaries: (两种模式都有) 默认关。如果输入 Item 里有文件之类的二进制数据,你想保留它们,就打开。注意: 会增加内存消耗,只在需要时打开。
    • Keep Missing And Null Values: (仅限 Individual Fields) 默认关。如果某个 Item 缺了你要收集的字段,或者值是 null:
      • 关 (默认): 直接忽略这个 Item 的这个字段。
      • 开: 会在输出列表的对应位置加一个 null 值。
      • 推荐: 大多数情况保持关闭。只有当你需要输出列表长度严格等于输入 Item 数量,并用 null 标记缺失时才打开。

常见错误与解决方法

  • 错误:没输出,或者输出里没有我要的列表。
    • 原因: 上游没数据?Input Field Name 写错了?Output Field Name 没填?
    • 解决: 检查上游输出;仔细核对字段名;确保设置了输出字段名。
  • 问题:收集嵌套字段 (如 user.id) 失败。
    • 原因: 可能不小心打开了 Disable Dot Notation。
    • 解决: 关掉 Disable Dot Notation。
  • 问题:收集列表字段,结果是列表的列表,不是平铺的。
    • 原因: 没打开 Merge Lists。
    • 解决: 打开 Merge Lists。
  • 问题:输出列表里少了值,或者多了 null。
    • 原因: 检查 Keep Missing And Null Values 设置;检查输入数据本身。
    • 解决: 调整设置;检查数据源。
  • 问题:在循环 (Loop) 里用 Aggregate,好像只收集了最后一次循环的数据?
    • 原因: 你可能把 Aggregate 放错地方了。如果放在循环 里面,它通常只处理当前这次循环的数据。
    • 理解: 循环节点(如 Loop Over Items)通常会在所有次循环结束后,把 所有 次的结果集合起来,从 “Done” 出口一次性传出去。
    • 解决: 如果你想收集 所有 循环的结果,应该把 Aggregate 节点连到循环节点的 “Done” 输出端口。
  • 问题:自动运行时没去掉 null,但手动测试时去掉了? (曾有社区报告类似问题)
    • 原因: 可能是特定版本的小问题或行为不一致。
    • 解决/规避:
      • 方法1: 在 Aggregate 后面 加个 Code 节点,用几行代码手动过滤 null。
      • 方法2: 确保 n8n 是最新版,可能已经修复了。如果还不行,可以去社区问问。

节点用途总结:何时选 Aggregate?

核心场景: 当你需要把分散在 多个 Item 里的 同一种信息(某个字段的值)收集 起来,变成 一个列表,放在 一个 Item 里,方便后续统一处理时。

关键特征: 输入是多个 Item,输出 永远只有一个 Item。这个输出 Item 的价值就在于那个列表。它不计算,就是 收集。

深入了解 Merge 节点:数据流交汇点

节点简介:它是干嘛的?

核心功能: Merge 节点用来把来自 两个或多个不同来源 (输入) 的 Items,按照你选的规则 (模式 Mode),合并或组合 成新的输出流。

  • 打个比方: 想象一个十字路口,有东、西、南、北来的车(多个输入流的数据 Items)。Merge 节点就是路口的交警。它可以让所有车按顺序排队通过 (Append 模式);也可以让东西向的车根据车牌号(匹配字段)配对后一起走 (Combine by Matching Fields 模式);或者按先来后到的顺序两两配对 (Combine by Position 模式)。它的核心任务是 协调不同来源的数据如何汇合。
  • 重要提示: Merge 节点在新版本 (0.194.0+) 有较大改进。本教程基于新版本。

典型应用场景:什么时候用它?

  • 合并 IF/Switch 分支: 如果你的流程用了 IF 或 Switch 节点分叉了,通常需要用 Merge 把不同分支处理完的结果重新合到一起。
  • 数据丰富: 把一个数据源(比如订单列表)和另一个数据源(比如客户信息)根据共同字段(如 customer_id)匹配起来,给订单加上客户详情。这就像数据库里的 JOIN 操作。
  • 同步数据: 比较两个系统的数据,用 Merge 匹配记录,找出差异或合并更新。
  • 组合不同来源数据: 从两个不同的 API 拿到数据后,把它们合并成一个数据集。
  • 等待多个并行任务: Merge 会等所有连到它输入的流都跑完,才开始合并。
  • 社区实例: 合并两个不同来源的数据,通过共同的 Key 匹配。

详细使用方法

  1. 添加节点: 在工作流画布上点 + 号,搜索 “Merge”,添加它。
  2. 连接输入: 把 至少两个 需要合并的上游节点或分支,连到 Merge 节点的 不同输入端 (Input 1, Input 2, …)。
  3. 配置节点 (关键步骤):
    • 选择合适的 模式 (Mode)。
    • 根据模式设置相应的选项 (比如按什么字段合并)。
  4. 测试: Merge 依赖多个输入,测试前最好确保所有上游都跑过了(或者用 Pin 功能固定上游数据)。然后点 “Test step” 看结果。

示例 (数据丰富):

  • 输入数据 1 (Input 1 – 来自 Code 节点 1): 人员列表[ { "json": { "name": "Max", "language": "en" } }, { "json": { "name": "Friedrich", "language": "de" } } ] ​
  • 输入数据 2 (Input 2 – 来自 Code 节点 2): 问候语列表[ { "json": { "greeting": "Hello", "language": "en" } }, { "json": { "greeting": "Hallo", "language": "de" } } ] ​
  • 目标: 根据 language 字段,把正确的问候语 greeting 合并到每个人员信息里。
  • 配置:
    • Mode: Combine
    • Combine By: Matching Fields
    • Input 1 Field: language
    • Input 2 Field: language
  • 测试输出 (Output):[ { "json": { "name": "Max", "language": "en", "greeting": "Hello" } }, { "json": { "name": "Friedrich", "language": "de", "greeting": "Hallo" } } ] ​成功!通过匹配 language,数据合并了。

节点设置详解 (推荐配置)

  • Mode (模式): 决定 Merge 怎么干活。
    • Append (追加):
      • 作用: 把所有输入流的 Items 按顺序 一个接一个叠起来,形成一个更长的输出流。不匹配,不组合,就是堆叠。
      • 行为: 等所有输入都完成后再执行。
      • Number of Inputs: 你要连几个输入就填几。
      • 推荐场景: 合并 IF/Switch 分支结果,且分支间数据不需要关联,只是想让流程汇合。
      • 注意: 输出的 Item 还是“各回各家”,只带着自己来源的数据。如果后面节点想用一个只在某个分支里才有的字段,可能会报错!
    • Combine (组合):
      • 作用: 把来自 两个输入 (Input 1, Input 2) 的 Items 配对组合。
      • Combine By (组合方式):
        • Matching Fields (按字段匹配):
          • 指定 Input 1 和 Input 2 里哪个字段用来 配对 (Input 1 Field, Input 2 Field)。值相同的 Item 会被合并。
          • 最常用,用于数据丰富 (像 SQL JOIN)。
          • 想匹配嵌套字段?直接写 data.id 这种。
        • Position (按位置匹配):
          • Input 1 的第 1 个 Item 配 Input 2 的第 1 个,第 2 个配第 2 个… 以此类推。
          • 适用于两个数据流顺序严格对应的情况。
          • 数量不一致时,默认丢弃没配上对的。
        • All Possible Combinations (所有可能组合):
          • Input 1 的每个 Item,都和 Input 2 的 所有 Item 组合一次。输出 M * N 个 Item。
          • 慎用,可能产生超多数据。
      • 推荐场景: 数据丰富、按 ID 合并信息、按顺序合并。
    • Choose Branch (选择分支):
      • 作用: 比较特殊。根据条件(比如谁先到,或根据数据内容)只选一个 输入流的数据作为输出,其他流可以等待或忽略。
      • Use output from branch: 选哪个输入的数据往下传。
      • Wait for other branches: 是否等其他输入跑完。
      • 推荐场景: 处理竞争情况(比如两个 API 抢资源,谁快用谁的),或者需要精确控制流程走向。
  • Options (选项 – 主要用于 Combine 模式):
    • Clash Handling (冲突处理): Input 1 和 Input 2 要合并的 Item 里有同名字段咋办?
      • Keep Key from Input 1: 用 Input 1 的值。
      • Keep Key from Input 2: 用 Input 2 的值。
      • Rename Key from Input 2: 给 Input 2 的重名字段加个后缀。
      • Merge Objects/Arrays: 尝试深度合并对象或数组。
      • 推荐: 看情况。如果 Input 1 是主要数据,选 Keep Key from Input 1 通常比较稳。
    • Fuzzy Compare (模糊比较): (用于 Matching Fields) 默认关。打开后,比较字段时会忽略类型差异,比如数字 3 和字符串 "3" 算相等。推荐: 只在你知道类型可能不同但逻辑上该相等时才开。
    • Disable Dot Notation: 默认关。推荐保持关闭,方便用 . 访问嵌套字段。
    • Multiple Matches (多重匹配): (用于 Matching Fields) Input 1 的一个 Item 匹配到 Input 2 的多个咋办?
      • Include All Matches: 每个匹配都生成一个输出 Item (一对多)。
      • Include First Match Only: 只保留第一个匹配 (默认,一对一)。
      • 推荐: 看你需要一对一还是一对多。
    • Include Any Unpaired Items (包含未配对项): (用于 Position 模式) 默认关。数量不一致时,打开会保留没配上对的 Item。推荐: 看你需不需要保留没配对的数据。

常见错误与解决方法

  • 错误:Merge 节点不运行,或者一直转圈圈 (等待状态)。
    • 原因: Merge 会等 所有 连接的输入都跑完。如果有一个输入出错了、或者因为 IF 条件没跑、或者跑太久没结束,Merge 就不会开始。
    • 解决: 检查所有连到 Merge 的上游分支,确保它们都能正常结束并输出数据(或者确定它们就是不该输出)。
  • 问题:Merge 好像触发了不该跑的分支? (比如 IF 为 True,但 False 分支也被 Merge 跑了)
    • 理解: 这是 Merge (尤其旧版) 一个有点怪但有时是“设计如此”的行为。当一个分支的数据到了 Merge,它为了能最终合并,可能会去“拉”其他还没到的分支的数据,这可能导致本不该跑的节点(如 IF 的 False 分支)意外执行。
    • 解决/规避:
      • 更新 n8n: 新版本 n8n 在改进执行逻辑。确保你的 n8n 最新。
      • 调整流程: 尽量避免 Merge 直接连到可能不执行的分支。考虑更线性的流程。
      • 用 Choose Branch 模式: 有时这个模式能更精确控制。
  • 错误:合并后的数据在后面节点用不了,报错 “Missing pairedItem data”。
    • 原因: 通常是用 Append 模式惹的祸。Append 输出的 Item 还是“各管各的”。如果后面节点想用只在 Input 2 里有的字段,但当前处理的 Item 来自 Input 1,就报错了。你可能误以为 Append 会把字段合并到一起。
    • 解决:
      • 用 Combine 模式: 如果你想把字段合并到 同一个 Item 里,应该用 Combine 模式 (通常是 Matching Fields 或 Position)。
      • 小心访问: 如果必须用 Append,后面节点访问字段时要考虑它可能不存在(比如用 IF 判断)。
  • 问题:用 Merge (Append 模式) 合并多个 (>2个) 输入,只输出了第一个? (曾在旧版报告)
    • 原因: 可能是旧版 Bug。
    • 解决: 更新 n8n 到最新版。
  • 问题:手动测试 (Test Step) 时 Merge 没输出,或者只输出一个输入的,但完整运行 (Test Workflow) 就正常?
    • 原因: 单步测试时,n8n 可能没法模拟所有上游分支都跑完的情况,特别是有些分支可能因 IF 条件没数据。
    • 解决:
      • Pin Data (固定数据): 在 Merge 的上游节点跑完后,点 “Pin Data” 把它们的输出固定住。这样测试 Merge 就有数据用了。
      • 测完整工作流: 对于复杂分支合并,用 “Test Workflow” 更靠谱。
  • 问题:用 Merge (SQL Query 模式) 测试结果不对? (此模式较少用且文档少)
    • 原因: 可能有 Bug 或与测试机制交互不好。
    • 解决/建议:
      • 新手慎用: 优先用标准模式 (Append, Combine)。
      • 求助社区: 如果非用不可,去社区带上详细步骤和例子问问。
  • 问题:Merge (Combine by Position) 没按预期工作,只输出了 Input 1 的数据?
    • 原因: 节点没激活?(颜色变浅,标着 Deactivated)输入数据有问题?
    • 解决: 确认节点已激活;检查输入数据;想想 Position 是不是你真想要的模式。

节点用途总结:何时选 Merge?

核心场景: 当你的工作流产生了 多个独立的数据来源 或 处理分支,你需要根据 某种逻辑关系 (共用 ID、按位置对应、或只是简单追加) 把它们的 Items 汇合 或 组合 起来时。

关键特征: 处理 多个输入流;提供 多种合并策略;通常会 等待所有输入完成。输出 Item 数量和结构看模式和数据。它专注于 连接 和 组合 不同路径的数据。

深入了解 Summarize 节点:数据汇总大师

节点简介:它是干嘛的?

核心功能: Summarize 节点的核心作用是对输入的多个 Item 进行 分组 (Group By),然后对 每个分组内 的 指定字段 执行 聚合计算 (比如算总和 Sum, 计个数 Count, 求平均值 Average, 找最大/最小值 Max/Min, 或者把值收集到列表 Append)。

  • 打个比方: Summarize 特别像 Excel 里的 “数据透视表 (Pivot Table)”。你告诉它:“我想按‘部门’(分组字段)来统计每个部门的‘销售额’(聚合字段)的‘总和’(聚合操作)”。然后它就给你一份报告(输出 Items),列出每个部门和对应的总销售额。
  • 重要区分: n8n 里有两个带 “Summarize” 的节点!咱们说的是 核心的 Summarize 节点,用来 分组统计数据 的。不是 那个用来总结文章内容的 AI 节点(那个通常叫 Summarization Chain 之类的)。

典型应用场景:什么时候用它?

  • 生成统计报告: 算每个销售区的总销售额、平均订单价、客户数等。
  • 分类计数: 统计网站日志里,每种浏览器访问了多少次;或者像社区例子那样,统计不同推荐结果(”DENY”, “CHALLENGE”)各有多少个。
  • 数据透视: 把流水账数据(每个 Item 是一笔交易)变成按月或按产品汇总的报告。
  • 按用户聚合信息: 按用户 ID 分组,用 append 操作把每个用户的所有订单号收到一个列表里(类似 Aggregate,但在分组内做)。
  • 社区实例: 读 Excel 数据,按某个 ID 分组统计,结果存数据库。

详细使用方法

  1. 添加节点: 在工作流画布上点 + 号,搜索 “Summarize”,添加它。
  2. 连接输入: 把包含要汇总数据的上游节点连到 Summarize 的输入端。
  3. 配置节点 (核心步骤):
    • 指定按 哪个字段分组 (Fields to Split By)。
    • 设置要做的 聚合计算 (Fields to Summarize):选操作 (Aggregation)、指定对哪个字段操作 (Field)、(推荐) 给结果起个名 (Output Field Name)。
  4. 测试: 点 “Test step”,看输出结果。通常会得到多个 Item,每个代表一个分组的汇总结果。

示例 (分类计数):

  • 输入数据 (Input):[ { "json": { "user": "user1", "recommendation": "DENY" } }, { "json": { "user": "user2", "recommendation": "DENY" } }, { "json": { "user": "user3", "recommendation": "CHALLENGE" } } ] ​
  • 目标: 统计每种 recommendation 出现了多少次。
  • 配置:
    • Fields to Split By: recommendation
    • Fields to Summarize: (点 “Add Aggregation”)
      • Aggregation: count
      • Field: recommendation (或 user,对 count 操作,字段存在就行)
      • Output Field Name: count_recommendation (推荐起个清晰的名字)
  • 测试输出 (Output – 默认格式):[ { "json": { "recommendation": "DENY", "count_recommendation": 2 } }, { "json": { "recommendation": "CHALLENGE", "count_recommendation": 1 } } ] ​输出是两个 Item,代表 “DENY” 组和 “CHALLENGE” 组的计数结果。
  • 格式转换提示: Summarize 默认输出上面这种格式。如果你想要 { "DENY": 2, "CHALLENGE": 1 } 这种键值对格式,需要在 Summarize 后面 加个 Code 节点,用代码转换一下。这说明 Code 节点在处理特定格式时很灵活。

节点设置详解

  • Fields to Split By (分组依据字段):
    • 作用: 指定按哪个 (或哪些,用逗号隔开) 字段来 分组。所有在这个字段上值完全一样的 Item 会被归为一组。
    • 关键: 这是实现“Group By”的核心。如果 留空,所有 Item 算一大组,只输出一个汇总结果。
    • 注意: 如果字段值是像 "0123" 这种看起来像数字的字符串,节点可能会把它当数字处理,丢掉前面的 0 (后面会说)。
  • Fields to Summarize (要汇总的字段):
    • 作用: 定义你要对每个分组做哪些 计算。可以点 “Add Aggregation” 添加多个计算。
    • 对每个计算项设置:
      • Aggregation (聚合操作): 选计算类型。常用有:
        • sum: 求和 (字段需为数字)。
        • count: 计数 (分组内 Item 数量)。
        • average: 平均值 (字段需为数字)。
        • min: 最小值。
        • max: 最大值。
        • first: 取分组里第一个 Item 的字段值。
        • last: 取分组里最后一个 Item 的字段值。
        • append: 把分组内所有 Item 的该字段值 收集到列表 (类似 Aggregate,但在组内做)。
        • merge: 合并 JSON 对象。
      • Field: 指定对 哪个字段 进行上面的操作。比如选 sum,这里就填包含数字的字段名。选 count,填任意存在的字段都行。
      • Output Field Name: (可选但 强烈推荐) 给计算结果起个名字,在输出 Item 里用。比如 total_sales。不填会自动生成 (如 sum_sales_amount),有时不直观还可能变。最佳实践:永远手动命名!
      • Include Empty: (可能在 append 等操作中有) 是否包含 null 或空字符串。默认通常不包含。
  • Options (选项):
    • Disable Dot Notation: 默认关。推荐保持关闭,方便用 . 访问嵌套字段。
    • Output Format:
      • Each Split in a Separate Item (默认): 最常用。每个分组的汇总结果是一个单独的 Item 输出。分了 5 组就输出 5 个 Item。
      • All Splits in a Single Item: 只输出一个 Item,里面包含一个列表,列表里才是每个分组的结果。不常用。

常见错误与解决方法

  • 错误:计算结果不对 (Sum 是 0? Count 错了?)
    • 原因: 字段名写错了?对文字做了数学计算 (如 sum)?输入数据有 null 或格式不对?分组 (Fields to Split By) 设错了?
    • 解决: 仔细核对字段名;确保数学计算的字段是数字类型(必要时前面加 Set/Code 节点转类型);检查上游数据;检查分组逻辑。
  • 问题:分组字段 (Fields to Split By) 是 "0123" 这种字符串,输出变成数字 123,前面的 0 没了!
    • 现象: 这是 Summarize 处理分组字段的一个 已知限制。如果值看起来像数字,它就可能按数字输出,导致格式变化(丢前导零最常见)。
    • 解决/规避:
      • 目前没直接选项: 节点本身没提供强制保留字符串格式的选项。
      • 方法1 (预处理): 在 Summarize 前面 加 Set 或 Code 节点,给这个字段值加个前缀 (如 "0123" -> "ID_0123"),这样它就不像纯数字了。Summarize 之后 再去掉前缀(如果需要)。
      • 方法2 (Code 节点替代): 最稳妥的方法是用 Code 节点自己写分组统计逻辑,这样能完全控制格式和类型。
      • 关注更新: 社区提过这问题,n8n 可能未来会改进。保持更新。
  • 问题:聚合字段用了点 (params.interval),自动生成的输出名 appended_params_interval 变成了 appended_paramsinterval (下划线没了)? (曾在旧版报告)
    • 现象: 旧版的一个 Bug。自动生成的名称没处理好点符号。
    • 解决:
      • 最佳实践 (推荐): 始终手动指定 Output Field Name! 不依赖自动生成,代码更清晰、稳定。
      • 更新 n8n: 更新到新版应该修复了此 Bug (但还是推荐手动命名)。
  • 问题:Summarize 输出格式不是我想要的,比如要 { "分组值": 结果 } 这种对象。
    • 原因: Summarize 标准输出格式是固定的 Item 列表。
    • 解决: 在 Summarize 后面 加个 Code 节点。用代码遍历 Summarize 的输出,自己组装成想要的格式。

节点用途总结:何时选 Summarize?

核心场景: 当你需要像用 Excel 做分析一样,对一堆数据(Items)根据某些 类别(分组字段)进行 分类归组,并对 每个组 分别进行 统计计算(求和、计数、平均值、找最值、收列表等)时。

关键特征: 输入多个 Item,输出通常也是多个 Item (每个代表一组的统计结果)。核心操作是 分组 (Split By) 和 聚合计算 (Summarize)。目的是产生数据的 统计视图。

功能对比:Aggregate vs Merge vs Summarize

我们已经分别了解了这三个节点,现在把它们放一起比一比,帮你搞清楚它们的不同,做出正确选择。

核心原理差异:

  • Aggregate (聚合): 像个 收集员。遍历所有来的包裹 (Items),只拿出你指定的同一样东西 (字段值),放进一个大容器 (输出 Item 的列表) 里。它不管包裹间的关系,只负责 收集,最后交出一个收集品列表。
  • Merge (合并): 像个 交通枢纽调度员。处理来自不同道路 (输入流) 的车辆 (Items)。根据规则(对车牌号?按顺序配对?排队通过?)指挥车辆 汇合、配对或排序。它关心的是如何处理 不同来源 数据流的关系。
  • Summarize (汇总): 像个 数据分析师。拿到一堆原始记录 (Items),先按标准 分类 (分组),然后对每个类别进行 量化分析 (算总数、平均值等),最后提交一份分类 统计报告 (输出 Items)。

输入与输出对比:

  • 输入: Aggregate 和 Summarize 通常处理来自 单一 源头的多个 Item。Merge 天生用来处理来自 两个或多个 不同源头的数据流。
  • 输出:
    • Aggregate 永远只输出一个 Item,里面装着收集好的列表。
    • Merge 输出的 Item 数量和结构 看模式和数据 (Append 输出总和数量,Combine 输出匹配/组合结果)。
    • Summarize 通常输出 多个 Item,每个 Item 是一组的统计结果 (除非你不分组)。

应用场景辨析:

  • 选 Aggregate 当你: 想把散落在多个 Item 里的 同一种信息 (所有 ID、所有名字) 收集 成 一个列表,放进 一个 Item 里,用于后续批量操作或循环。本质是 打包 同类信息。
  • 选 Merge 当你: 需要把来自 不同源头 或 不同处理路径 (IF/Switch 分支) 的数据,根据 某种关联 (共用 ID、顺序对应) 进行 连接、配对或合并。比如用客户信息补充订单,或把分支结果合流。本质是 对接 不同来源的数据。
  • 选 Summarize 当你: 需要对一批数据 分类统计,计算每个类别的 总和、数量、平均值 等指标,像做数据报告或透视表。比如按月统计销售额。本质是 分析 和 提炼 数据的统计特征。

关键限制与选择考量:

  • Aggregate 限制: 输出只有一个 Item,丢失了大部分原始结构。不做计算。
  • Merge 限制: 逻辑较复杂,尤其 Combine 模式选项多。结合 IF/Switch 时可能出现反直觉执行(主动拉取)。Append 模式可能导致后续字段访问出错。SQL Query 模式文档少且可能不稳。测试可能需要 Pin Data。
  • Summarize 限制: 主要做分组统计,复杂逻辑不如 Code 节点灵活。可能错误地将数字字符串转为数字(丢前导零)。旧版曾有自动命名 Bug。输出格式固定,特殊格式需配合 Code 节点。

选择时思考:

  1. 最终想要一个 列表 吗? -> 可能选 Aggregate。
  2. 需要 连接/组合 来自 不同流/分支 的数据吗? -> 可能选 Merge。
  3. 需要 分组 并计算 统计值 (总和/数量/平均值) 吗? -> 可能选 Summarize。
  4. 逻辑 很复杂 或要 精确控制格式/类型 吗? -> 考虑 Code 节点 或组合节点。
  5. 在处理 IF/Switch 分支 吗? -> 用 Merge 要 特别小心 其执行逻辑,或更新 n8n。
  6. 关心 分组字段 的原始格式 (如带前导零的编号) 吗? -> 用 Summarize 注意类型转换限制,必要时用 Code 或预处理。

理解这些差异,你就能更自信地为你的 n8n 工作流选择最合适的节点了!

总结与后续学习

回顾: 我们一起学习了 n8n 中三个核心数据处理节点:

  • Aggregate: 收集特定值到列表。
  • Merge: 连接不同来源的 Items。
  • Summarize: 分组并进行统计计算。
    掌握它们是用好 n8n 的关键一步。

强调实践: 理论懂了,更要动手试!强烈建议你打开 n8n,用教程里的例子或者你自己的数据,亲自配置、测试这三个节点。观察输入输出的变化,甚至故意搞点小错误看看会怎样。记住,单步测试 (“Test Step”) 和完整流程测试 (“Test Workflow”) 有时结果可能不一样,特别是对 Merge 这种多输入的节点。

超越基础: 这三个节点是基石,但 n8n 的能力远不止于此。遇到它们搞不定的复杂需求时,别忘了 Code 节点!它让你能用 JavaScript (或 Python) 写代码,实现几乎任何逻辑,是解决特殊场景的“万能钥匙”。此外,还有像 Item Lists 节点 (包含拆分列表、排序、去重等操作) 和 Compare Datasets 节点 (提供另一种强大的比较合并数据集的方式) 也非常有用。

鼓励探索: 掌握了这三个核心节点,你就有了处理 n8n 数据流的基础。以此为起点,大胆探索更复杂的应用,尝试把它们和 n8n 成百上千的其他节点组合起来,你会发现 n8n 的无限潜力!

翔宇希望今天的教程能够帮助各位小伙伴设计出令人惊叹的工作流!

Total
0
Shares
Tweet 0
Share 0
翔宇工作流

专注于AI与自动化技术的分享与实践 翔宇微信:xiangyugzl

相关话题
  • AI自动化工作流
  • n8n教程
上一篇文章
  • 翔宇教程

福利来啦 | 手把手教你领取 $10 大模型免费额度

  • 翔宇工作流
  • 2025年4月23日
阅读
下一篇文章
  • n8n中文教程

电脑 + 手机双端:轻松搞定调用 n8n MCP(Cherry Studio 与 Opencat 完美指南)

  • 翔宇工作流
  • 2025年5月3日
阅读
你可能会喜欢
阅读
  • AI自动化工作流

n8n 33. 不剪辑不拍摄!这个 n8n 自动化工作流批量生成万种风格抖音 TikTok 爆款短视频

  • 翔宇工作流
  • 2025年6月3日
阅读
  • n8n中文教程

视频 33 爆款短视频 n8n 工作流测试

  • 翔宇工作流
  • 2025年6月3日
阅读
  • Make中文教程
  • n8n中文教程

小白也能搞懂!从零开始玩转AI大模型全指南

  • 翔宇工作流
  • 2025年6月3日
阅读
  • 翔宇教程

新手必看:用虚拟信用卡 BinGoCard 注册并使用 Google 云服务器

  • 翔宇工作流
  • 2025年6月2日
阅读
  • Make中文教程
  • n8n中文教程

开源视频处理神器 No-Code Architects Toolkit 实战全攻略

  • 翔宇工作流
  • 2025年6月2日
阅读
  • Make中文教程
  • n8n中文教程

谷歌云平台 (GCP) 安装 No-Code Architects Toolkit 手把手中文教程

  • 翔宇工作流
  • 2025年6月2日
阅读
  • 翔宇教程

AI短视频制作全攻略:抖音TikTok从脚本到剪辑的创作教程

  • 翔宇工作流
  • 2025年6月2日
阅读
  • AI自动化赚钱

全网最全!AI一站式爆款短视频脚本创作指南(TikTok + YouTube Shorts)

  • 翔宇工作流
  • 2025年5月18日

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

搜索
分类
  • AI自动化工作流 (37)
  • AI自动化赚钱 (34)
  • Make中文教程 (12)
  • n8n中文教程 (30)
  • 翔宇教程 (35)
精选文章
  • 1
    n8n 33. 不剪辑不拍摄!这个 n8n 自动化工作流批量生成万种风格抖音 TikTok 爆款短视频
  • 2
    小白也能搞懂!从零开始玩转AI大模型全指南
  • 3
    新手必看:用虚拟信用卡 BinGoCard 注册并使用 Google 云服务器
  • 4
    开源视频处理神器 No-Code Architects Toolkit 实战全攻略
  • 5
    谷歌云平台 (GCP) 安装 No-Code Architects Toolkit 手把手中文教程
目录 隐藏
1 n8n 基础快速回顾
2 深入了解 Aggregate 节点:数据收集器
3 深入了解 Merge 节点:数据流交汇点
4 深入了解 Summarize 节点:数据汇总大师
5 功能对比:Aggregate vs Merge vs Summarize
6 总结与后续学习
翔宇工作流
  • 小报童
  • Buy Me A Coffee
  • 翔宇Notion知识库
  • RSS订阅源
  • 隐私政策
© 2025 翔宇工作流 | 专注于AI与自动化技术的分享与实践 | All rights reserved

输入搜索关键词,按回车搜索。