ES nested 聚合統計僅符合過濾的子項

2021-10-10 12:37:50 字數 1666 閱讀 9296

es nested 統計僅符合的子項

相似sql

select sum(item.sku_cnt) from table_main main

left join table_item item on main.id = item.main_id

where main.id in (4,5,6) and item.sku_id is not null;

2.es querydsl查詢

}]

}},

"aggs": ,

//過濾有sku_id。在query塊能篩選訂單,但是要從只符合的子項統計的時候,子項兄弟不符合的還是會統計進來,所以要在這裡加filter,過濾掉子項不符合的兄弟節點

"aggs":

},//統計字段 aggregationbuilders.sum("sumsku").field("tableitem.sku_cnt")

"aggs": }}

}}}}

}

querybuilder agentstoreidquerybuilder = querybuilders.existsquery("tableitem.agentstoreid");

filteraggregationbuilder agentstoreidfilter = aggregationbuilders.filter("filterskuid", agentstoreidquerybuilder)

.subaggregation(aggregationbuilders.sum("sumsku").field("tableitem.skucnt"));

nestedaggregationbuilder sumskubuilder = aggregationbuilders.nested("sumskunest", "tableitem")

.subaggregation(agentstoreidfilter);

nativesearchquery searchquery = new nativesearchquerybuilder()

.withindices(ocorderindexname)

.withtypes(ocordertypename)

.addaggregation(sumskubuilder)

.build();

aggregations aggregations = estemplate.query(searchquery, searchresponse::getaggregations);

internalnested sumskunest = (internalnested)aggregations.asmap().get("sumskunest");

internalfilter internalfilter = (internalfilter) sumskunest.getaggregations().asmap().get("filterskuid");

internalsum internalsum = internalfilter.getaggregations().get("sumsku");

double sumvalue = internalsum.value();

response.setcontent(sumvalue.lon**alue());

Excel 統計符合條件不重複的個數

iamlaosong文 要求從貨運明細中統計各省某日發貨點數量,公式如下 sumproduct sheet1 l 2 l 1747 b6 sheet1 m 2 m1747 a 1 countif sheet1 u 2 u 1747,sheet1 u 2 u 1747 sheet1是貨運明細,其中l列...

elasticsearch 7 聚合統計 分組聚合

原文 get index type search 返回值表示,15,20 區間內的值有1個,20,25 區間內的值有0個,25,30 區間內的值有1個,30,35 區間內的值有1個。1 直方圖篩選規則 舉個例子,有乙個price欄位,這個字段描述了商品的 現在想每隔5就建立乙個桶,統計每隔區間都有多...

對IExpression聚合統計的擴充套件實現

iexpression 是sql artisan 元件的條件描述介面,元件中使用的所有條件 包括組合條件 都是以 iexpression 體現出來。但現有版本中的 iexpression 只支援資料查詢 刪除和修改操作,對於聚合統計並沒有直接支援 只能通過檢視物件的方式來描述聚合統計 但這種方式需要...