Harmeet Kaur
Harmeet Kaur

Reputation: 164

Aggregate Elastic search query for multiple fields

I'm writing an elastic search query the payload looks like

"userData": [ { "subject1":1234, "subject2":678 } ]

I have written a query which works perfectly fine if I want to get the avg of a single field

Query :

{ 
  "aggs": { 
    "student_data": { 
      "date_histogram": { 
        "field":"@timestamp",
        "calendar_interval":"minute"
      },
      "aggs": { 
        "marks_avg": { 
          "avg": { 
            "field":"subject1"
          }
        }
      }
    }
  }
}

What I want is to get the average of subject2 also.

somewhat like :

"avg": { 
    "field":"subject1",
    "field":"subject2"
 }

Upvotes: 1

Views: 226

Answers (1)

elixir
elixir

Reputation: 762

Query using multiple aggregations should work:

{ 
  "aggs": { 
    "student_data": { 
      "date_histogram": { 
        "field":"@timestamp",
        "calendar_interval":"minute"
      },
      "aggs": { 
        "subject1_avg": { 
          "avg": { 
            "field":"subject1"
          }
        },
        "subject2_avg": { 
          "avg": { 
            "field":"subject2"
          }
        }
      }
    }
  }
}

Upvotes: 1

Related Questions