如何在Quiver、Workshop或TypeScript中计算列值的去重平均值?
在Quiver/Workshop中计算去重平均值的方案
核心逻辑是先按person列去重,保留每个唯一人员对应的年龄值,再用去重后的年龄总和除以唯一人员的数量,避免直接计算全量数据的平均值。
示例数据集
| person | Age |
|---|---|
| A | 40 |
| A | 40 |
| A | 40 |
| A | 40 |
| B | 50 |
目标结果:(40+50)/2 = 45
Quiver操作步骤
- 分组去重:添加
Group By节点,分组字段选择person,对Age字段选择First(或Max/Min,因为同一人员年龄一致),输出每个唯一person对应的单条Age记录。 - 聚合统计:添加
Aggregate节点,计算Age列的Sum(去重年龄总和),同时统计去重后的记录数(即唯一person的数量)。 - 计算平均值:添加
Formula节点,输入公式Sum_Age / Record_Count,得到最终的去重平均值。
Workshop操作步骤
- 分组去重:在数据集上添加
Group转换,分组字段选person,对Age字段选择Keep first(或其他能保留唯一值的聚合方式),生成仅包含唯一人员的数据集。 - 聚合统计:添加
Aggregate转换,设置两个聚合项:一是Age的Sum,二是记录的Count(即唯一人员数量)。 - 计算平均值:添加
Calculate转换,创建新字段,用Sum(Age)除以Count(Records)得到结果。
注意事项
使用内置的分组、聚合节点完全避开TypeScript的10000条记录限制,这类操作是基于底层引擎批量处理,支持大规模数据集计算。
内容的提问来源于stack exchange,提问作者luffy
相关产品推荐
相关产品推荐

