我想对sum
进行汇总,但也要通过"返回"组。字段。
例如,我想对学校数据库进行查询,以获得特定班级和学习的平均成绩 在SQL中运行:
select class, study, examId, avg(grade)
from grades
group by study, examId
结果如下:
class | study | avg(grade)
a1 | gymnastics | 85
a1 | mathematics | 87
a2 | gymnastics | 85
a2 | mathematics | 87`
因此结果包含按字段分组(类和研究)和聚合结果。
我想用弹性进行相同的查询,并返回聚合中的所有列(class,study,avg(grade))
有什么想法吗? 提前致谢。 尤瓦
答案 0 :(得分:1)
您需要使用Sub Aggregation 使用此查询:
{
"size": 0,
"aggs": {
"groupByClass": {
"terms": {
"field": "class"
},
"aggs": {
"groupByStudy": {
"terms": {
"field": "study"
},
"aggs": {
"averageOfGrades": {
"avg": {
"field": "grade"
}
}
}
}
}
}
}
}
希望这有帮助