如何使用jq对符合指定条件的JSON对象中good字段数值求和?
使用jq对筛选后的JSON数值求和
修改后的jq命令(两种实现方式)
方式一:数组收集后求和
[select(.orderNumber == 2346999 and .workStep == 110) | .good] | add
方式二:reduce迭代累加求和
reduce (select(.orderNumber == 2346999 and .workStep == 110) | .good) as $item (0; . + $item)
说明
原命令仅逐个输出符合筛选条件的.good字段值,未做聚合操作。上述两种方式均可实现求和:
- 方式一通过
[]将所有符合条件的.good值打包为数组,再调用add函数对数组元素求和; - 方式二利用
reduce遍历每个筛选出的数值,以0为初始累加值,逐步累加得到最终总和。
对示例输入执行任意一种命令,都会输出期望结果16。
内容的提问来源于stack exchange,提问作者shepi
相关产品推荐
相关产品推荐

