# 쿼리 도움 요청드립니다

**URL:** <https://discuss.elastic.co/t/topic/83640>\
**Category:** 한국어 질문 및 토론\
**Created:** [April 26, 2017, 3:19am UTC](https://discuss.elastic.co/t/topic/83640 "2017-04-26T03:19:32Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jason\_Park](https://avatars.discourse-cdn.com/v4/letter/j/c77e96/32.png) [@Jason\_Park](https://discuss.elastic.co/u/Jason_Park)\
**Post date:** [April 26, 2017, 3:19am UTC](https://discuss.elastic.co/t/topic/83640/1 "2017-04-26T03:19:32Z")

</div>

아래 쿼리문을 심플하게 변경하는 방법이 있을 것 같습니다.  
metric data고 동작은 잘 하는데 가독성이 너무 않좋아서요.  
쿼리 내용은 (SUM of HTTP status code 200 COUNT) / (SUM of HTTP method(get+post+delete) COUNT) 입니다.  
즉 HTTP request에 대한 응답코드 200 OK의 비율을 구하고자 합니다.

감사 합니다.

```
{
  "size" : 0,
  "aggs": {
    "group_by": {
      "terms": { 
        "field": "popid",
        "size": 200
      },
      "aggs": {
        "get_bucket": {
          "filter": {
            "term": {
              "popid": "1000"
            }
          },
          "aggs": {
            "get_sum": {
              "sum": {
                "field": "get"
              }
            }
          }
        },
        "post_bucket": {
          "filter": {
            "term": {
              "popid": "1000"
            }
          },
          "aggs": {
            "post_sum": {
              "sum": {
                "field": "post"
              }
            }
          }
        },
        "delete_bucket": {
          "filter": {
            "term": {
              "popid": "1000"
            }
          },
          "aggs": {
            "delete_sum": {
              "sum": {
                "field": "delete"
              }
            }
          }
        },
        "rsp_200_bucket": {
          "filter": {
            "term": {
              "popid": "1000"
            }
          },
          "aggs": {
            "rsp_200_sum": {
              "sum": {
                "field": "rsp_200"
              }
            }
          }
        },
        "response_ratio": {
          "bucket_script": {
            "buckets_path": {
              "get_tot_cnt": "get_bucket>get_sum",
              "post_tot_cnt": "post_bucket>post_sum",
              "delete_tot_cnt": "delete_bucket>delete_sum",
              "rsp_200": "rsp_200_bucket>rsp_200_sum"
            },
            "script": "params.rsp_200/(params.get_tot_cnt+params.post_tot_cnt+params.delete_tot_cnt)"
          }
        }
      }
    }
  }
}
```

---

<div class="post-metadata">

**Author:** ![JongminKim](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jongminkim/32/15223_2.png) [@JongminKim](https://discuss.elastic.co/u/JongminKim)\
**Post date:** [April 27, 2017, 1:09am UTC](https://discuss.elastic.co/t/topic/83640/2 "2017-04-27T01:09:29Z")

</div>

Pipeline aggregation 으로는 해결하기 어려운 수식일까요?

[https://www.elastic.co/guide/en/elasticsearch/reference/5.3/search-aggregations-pipeline-percentiles-bucket-aggregation.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/search-aggregations-pipeline-percentiles-bucket-aggregation.html)

---

<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:** [May 25, 2017, 1:19am UTC](https://discuss.elastic.co/t/topic/83640/3 "2017-05-25T01:19:18Z")

</div>

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