これをelasticsearchでどのように書くことができますか:
SELECT avg(sum)
FROM (
SELECT sum(rev) as sum
FROM table
GROUP BY user_id
)
これをelasticsearchでどのように書くことができますか:
SELECT avg(sum)
FROM (
SELECT sum(rev) as sum
FROM table
GROUP BY user_id
)
使用している ES バージョンが 2.x の場合は、Avg Bucket Aggregationを使用します
{
"aggs": {
"group_by_user": {
"terms": {
"field": "userId"
},
"aggs": {
"rev_sum": {
"sum": {
"field": "rev"
}
}
}
},
"avg_monthly_sales": {
"avg_bucket": {
"buckets_path": "group_by_user>rev_sum"
}
}
}
}
それが役に立てば幸い