如何在Informatica中实现板球得分按局累计求和的映射?
Informatica映射实现板球累计得分计算
核心逻辑
先按局数(Overs)分组计算单局得分,再基于排序后的局数计算累计得分总和。
映射组件配置步骤
1. 源组件(Source Qualifier)
- 连接源表
Cricket_Score,选择字段Overs、Balls、Runs。
2. 聚合器转换(Aggregator Transformation)
- 分组键:设置
Overs为分组字段,确保每个局数的所有球数据被聚合为一行。 - 计算单局得分:创建输出端口
Over_Runs,表达式为SUM(Runs),用于计算每一局的总得分。- 计算结果:Over1得10分,Over2得15分,Over3得14分。
3. 排序器转换(Sorter Transformation)
- 按
Overs字段升序排序,保证后续累计计算是按局数顺序进行的。
4. 表达式转换(Expression Transformation)
- 创建变量端口
v_Running_Total,表达式为v_Running_Total + Over_Runs,用于持续累加每一局的得分。 - 创建输出端口
Total_Runs,直接引用变量端口v_Running_Total,输出累计总分。- 逻辑说明:变量端口会保留上一次计算的结果,每处理一个局数,就把当前局的得分加到之前的累计值上,得到截至当前局的总分。
5. 目标组件(Target)
- 连接目标表,将
Overs映射到目标表的Overs字段,Total_Runs映射到目标表的Total_Runs字段。
结果验证
最终输出的累计得分:
- Overs1:10(单局得分)
- Overs2:10+15=25(前两局累计)
- Overs3:10+15+14=39(前三局累计)
内容的提问来源于stack exchange,提问作者Vivek Patil
相关产品推荐
相关产品推荐

