我有兴趣按总和对 jq 列进行分组。
我尝试过使用数组,但不行。我需要添加按级别和类型分组的学生。
我的json是这样的:
[
{
"name": "Maths",
"Level": "One",
"Genre": "Boys",
"pupils": 5
},
{
"name": "English",
"Level": "Two",
"Genre": "Boys",
"pupils": 3
},
{
"name": "Maths",
"Level": "One",
"Genre": "Girls",
"pupils": 7
},
{
"name": "English",
"Level": "One",
"Genre": "Girls",
"pupils": 6
},
{
"name": "Social",
"Level": "One",
"Genre": "Boys",
"pupils": 4
},
{
"name": "Social",
"Level": "Two",
"Genre": "Girls",
"pupils": 0
}
]
我需要转换为 csv,如下所示:
One, Boys, 9
One, Girls, 13
Two, Boys, 3
Two, Girls, 0
非常感谢!
最佳答案
这与 your previous question 非常相似。您只需在Level
之后按Genre
进行分组即可。
group_by(.Level)[]
| group_by(.Genre)[]
| [.[0].Level, .[0].Genre, (map(.pupils) | add)]
| @csv
关于json - 按两个字段分组并对每个组求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61969556/