이번에 ES를 사용하면서 aggregation 쿼리를 사용하게 됐는데, 그 중 백분위수를 사용한 쿼리가 있었다. 백분위수가 내가 알고 있던 퍼센트 계산인줄 알았는데 전혀 아니였던 것이였댜… ㄷㄷ
크기가 있는 값들로 이뤄진 자료를 순서대로 나열했을 때 백분율
로 나타낸 특정 위치의 값. 여러 수의 집합에서 높고/낮음 혹은 크고/작음으로 나열하고자 할 때 사용. 예를 들어, 가장 작거나 낮은 것을 0 으로하고 가장 크고거나 높은 것을 100하고 그 수가 100 개일 때 20 백분위수는 20번째로 큰 수이다.
1.쿼리 :
percentiles 에 20, 40, 60, 80 으로 지정함 → 각 퍼센티지를 p라고 가정
2.쿼리에 대한 결과 :
5000원 5000원 84900원 84900원 84900원 84900원 84900원 93900원 3000000원 - 9개 → n개라고 가정
20백분위수(p):
n p = 9 0.2 = 1.8
1.8번째로 작은수. 1.8번째는 없으니까 1번째인 5000원
40백분위수(p):
n p = 9 0.4 = 3.6
3.6번째로 작은수. 3.6번째는 없으니까 3번째인 84900원
60백분위수(p):
n p = 9 0.6 = 5.4
5.4번째로 작은수. 5.4번째는 없으니까 5번째인 84900원
80백분위수(p):
n p = 9 0.8 = 7.2
7.2번째로 작은수. 7.2번째는 없으니까 7번째인 84900원