11.2.3.2.8. グループ化およびアグリゲーション
Red Hat Data Grid には、グループ化フィールドのセットに従ってクエリーの結果をグループ化し、各グループに含まれる値のセットに集約機能を適用して、各グループからの結果の集約を構築する機能があります。グループ化と集約は、プロジェクトクエリーにのみ適用できます。サポートされる集計は avg、sum、count、max、min です。グループ化フィールドのセットは groupBy(field) メソッドで指定され、複数回起動できます。グループ化フィールドの定義に使用される順序は関係ありません。プロジェクションで選択されたすべてのフィールドは、グループ化フィールドであるか、以下で説明するグループ化関数の1つを使用して集約される必要があります。Projection フィールドは集約され、同時にグループ化に使用できます。フィールドをグループ化し、集約フィールドは一切選択しないクエリーです。
例: 作成者およびカウントによる書籍のグループ化
Query query = queryFactory.from(Book.class)
.select(Expression.property("author"), Expression.count("title"))
.having("title").like("%engine%")
.groupBy("author")
.build();
Query query = queryFactory.from(Book.class)
.select(Expression.property("author"), Expression.count("title"))
.having("title").like("%engine%")
.groupBy("author")
.build();
選択したすべてのフィールドに集計関数が適用され、グループ化にフィールドが使用されないプロジェクションクエリが許可されます。この場合、集計は、単一のグローバルグループが存在するかのようにグローバルに計算されます。