# Add normal field filter to nested field aggregation

**URL:** <https://discuss.elastic.co/t/add-normal-field-filter-to-nested-field-aggregation/283864>\
**Category:** Elasticsearch\
**Tags:** eql-elastic-query-language\
**Created:** [September 10, 2021, 11:01am UTC](https://discuss.elastic.co/t/add-normal-field-filter-to-nested-field-aggregation/283864 "2021-09-10T11:01:27Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jiajun](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jiajun/32/78942_2.png) [@jiajun](https://discuss.elastic.co/u/jiajun)\
**Post date:** [September 10, 2021, 11:01am UTC](https://discuss.elastic.co/t/add-normal-field-filter-to-nested-field-aggregation/283864/1 "2021-09-10T11:01:27Z")

</div>

I have document structure like below in ES:

```auto
{
  customer_id: 1,
  is_member: true,
  purchases: [
    {
      pur_id: 1,
      pur_channel_id: 1,
      pur_amount: 100.00,
      pur_date: '2021-08-01'
    },
    {
      pur_id: 2,
      pur_channel_id: 2,
      pur_amount: 100.00,
      pur_date: '2021-08-02'
    }
  ]
},
{
  customer_id: 2,
  is_member: false,
  purchases: [
    {
      pur_id: 3,
      pur_channel_id: 1,
      pur_amount: 200.00,
      pur_date: '2021-07-01'
    },
    {
      pur_id: 4,
      pur_channel_id: 3,
      pur_amount: 300.00,
      pur_date: '2021-07-02'
    }
  ]
}

```

I want to aggregate sum by purchases.pur\_channel\_id and also for each sub aggregation I want to add sub sum aggregation on documents that contains "is\_member=false", therefore, I composed following query:

```auto
{ 
  "size": 0,
  "query": {
     "match_all": {}
   }
 },
"aggs": {
  "purchases": {
    "nested": {
      "path": "purchases"
    },
    "aggs": {
       "pur_channel_id": {
         "terms": {
           "field": "purchases.pur_channel_id",
           "size": 10
         },
         "aggs": {
           "none_member": {
             "filter": {
               "term": {
                 "is_member": false
               }
             },
             "aggs": {
               "none_member_amount": {
                 "sum": {
                   "field": "purchases.pur_amount"
                 }
               }
             }
           },
           "aggs": {
             "pur_channel_amount": {
               "sum": {
                   "field": "purchases.pur_amount"
               }    
             }
           }
         }
       }
    }
  }
}

```

The query runs success, while I got 0 for all "none\_member\_amount". I wonder a normal field perhaps can not be added inside of a nested aggregation.

Please help! Thanks.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [October 8, 2021, 11:02am UTC](https://discuss.elastic.co/t/add-normal-field-filter-to-nested-field-aggregation/283864/2 "2021-10-08T11:02:11Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
