json - 按两个字段分组并为每个组求和另一个
问题描述
我有兴趣按总和做一个 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
非常感谢!
解决方案
这与您之前的问题非常相似。您只需要按Genre
after分组Level
。
group_by(.Level)[]
| group_by(.Genre)[]
| [.[0].Level, .[0].Genre, (map(.pupils) | add)]
| @csv
推荐阅读
- javascript - 如何与 Mongoose 同步获取文档?
- oracle - 如何从另一个 Docker 容器中运行命令?
- java - 使用 Spring 实现 OAuth2 服务器
- dns - 全局 IP 重置后无法通过域访问我的网站,但可以通过 ip
- ios - 在自定义 UIView 的 updateConstraint 函数中获取帧大小
- php - 在 PHP 中导入 CSV 验证
- spring - 一起使用 Spring `@Scheduled` 和 `@Async` 的设计注意事项
- javascript - 传递联合类型的道具以反应需要联合中的一种类型的子组件
- javascript - Javascript - 在对象中动态创建数组并推送到它
- swift - 如何对我的 TODO 进行分类?