11.2.3.2.10. グループ化および集計を使用したクエリーの評価
集計クエリーには、通常のクエリーのようにフィルター条件を含めることができます。フィルタリングは、グループ化操作の前後の 2 つのステージで実行できます。groupBy メソッドを呼び出す前に定義されるすべてのフィルター条件は、grouped 操作が実行される前に適用され、キャッシュエントリーに直接適用されます(最終的なプロジェクトではありません)。これらのフィルター条件はクエリーされたエンティティータイプのフィールドを参照する可能性があり、グループ化ステージに対する入力となるデータセットを制限することを目的としています。groupBy メソッドを呼び出した後に定義されたすべてのフィルター条件は、projection および grouping 操作から得られるプロジェクトに適用されます。これらのフィルター条件は、groupBy フィールドまたは集約フィールドのいずれかを参照できます。select句で指定されていない集約フィールドを参照することは許可されています。ただし、非集計フィールドと非グループ化フィールドを参照することは禁止されています。このフェーズでフィルタリングすると、プロパティに基づいてグループの数が減ります。並べ替えは通常のクエリーと同様に指定できます。順序付け操作は、grouping 操作の後に実行され、groupBy フィールドまたは集約フィールドのいずれかを参照できます。