# Combiner deux résultats d'aggregations et les diviser

**URL:** <https://discuss.elastic.co/t/combiner-deux-resultats-daggregations-et-les-diviser/1634>\
**Category:** Discussions en français\
**Created:** [June 1, 2015, 12:08pm UTC](https://discuss.elastic.co/t/combiner-deux-resultats-daggregations-et-les-diviser/1634 "2015-06-01T12:08:29Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![jhercule](https://avatars.discourse-cdn.com/v4/letter/j/d78d45/32.png) [@jhercule](https://discuss.elastic.co/u/jhercule)\
**Post date:** [June 1, 2015, 12:08pm UTC](https://discuss.elastic.co/t/combiner-deux-resultats-daggregations-et-les-diviser/1634/1 "2015-06-01T12:08:29Z")

</div>

Bonjour,

j'essaie depuis quelques temps de faire une moyenne. En gros sum(element1) / count(element2). Ceci via kibana.  
Je suis tombé sur un article ([https://github.com/elastic/kibana/issues/2504](https://github.com/elastic/kibana/issues/2504)) qui semble dire (mon anglais n'est pas au top 😉 ) que ceci est impossible car elasticsearch ne le permet pas. Il faut faire les deux requêtes coté serveur et renvoyer la division dans un second temps.

Existe-t-il une alternative (par exemple avec un script) pour le faire en une requête ?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [June 1, 2015, 5:25pm UTC](https://discuss.elastic.co/t/combiner-deux-resultats-daggregations-et-les-diviser/1634/2 "2015-06-01T17:25:23Z")

</div>

Tu ne peux pas faire une aggregation avg ?

---

<div class="post-metadata">

**Author:** ![jhercule](https://avatars.discourse-cdn.com/v4/letter/j/d78d45/32.png) [@jhercule](https://discuss.elastic.co/u/jhercule)\
**Post date:** [June 2, 2015, 9:03am UTC](https://discuss.elastic.co/t/combiner-deux-resultats-daggregations-et-les-diviser/1634/3 "2015-06-02T09:03:57Z")

</div>

Le soucis avec avg c'est que tu peux le faire uniquement sur un champs et  
pas sur une combinaison de champs.  
Par exemple, un document contient une "personne", un "nombre" et une  
"date". Un avg me fera une moyenne du "nombre" par rapport à chaque  
document et non par rapport à l'unique count de "personne" comme je  
souhaiterais.

A moins que je me trompe et qu'il est possible de faire ce type de requête !

Cordialement,  
Joffrey Hercule

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [June 2, 2015, 9:23am UTC](https://discuss.elastic.co/t/combiner-deux-resultats-daggregations-et-les-diviser/1634/4 "2015-06-02T09:23:53Z")

</div>

Si tu fais un premier niveau de agg sur personne puis un av. sur nombre, tu auras par personne la moyenne de nombre.

Ou je ne comprends pas et un exemple serait le bienvenu. 🙂

---

<div class="post-metadata">

**Author:** ![jhercule](https://avatars.discourse-cdn.com/v4/letter/j/d78d45/32.png) [@jhercule](https://discuss.elastic.co/u/jhercule)\
**Post date:** [June 2, 2015, 10:15am UTC](https://discuss.elastic.co/t/combiner-deux-resultats-daggregations-et-les-diviser/1634/5 "2015-06-02T10:15:35Z")

</div>

Si si tu as bien compris 🙂  
Tu peux faire ça :  
"aggs": {  
"group\_by": {  
"terms": {  
"field": "personne"  
},  
"aggs": {  
"moyenne": {  
"avg": {  
"field": "nombre"  
}  
}  
}  
}

mais pas ça :  
"aggs": {  
"group\_by": {  
"cardinality": {  
"field": "personne"  
},  
"aggs": {  
"moyenne": {  
"avg": {  
"field": "nombre"  
}  
}  
}  
}

comme cardinality est experimental, ça ne doit pas être intégré à elastic... Pour le moment cela renvoit uniquement le unique count, sans la moyenne.

---

<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:** [July 6, 2017, 1:52pm UTC](https://discuss.elastic.co/t/combiner-deux-resultats-daggregations-et-les-diviser/1634/6 "2017-07-06T13:52:14Z")

</div>


