各集計に固有の、フィルタリング用のWHERE句を指定できます。集計関数フィルタは、集計式の入力をフィルタリングします。これが役に立つのは、スパースまたは異種混在のデータを扱うときです。レコードのうち、フィルタ条件を満たすもののみが集計関数の計算に使用されます。
集計ごとのWHEREフィルタは、実際に前集計に適用されます。この理由は、後集計まで遅延した場合、実装が必ずしも必要な列のすべてにアクセスできるとはかぎらないためです。
AggregateFunction(Expression) WHERE (Filter)
RETURN NetSales AS SELECT SUM(Amount) WHERE (Type='Sale') AS SalesTotal, SUM(Amount) WHERE (Type='Return') AS ReturnTotal, ARB(SalesTotal – ReturnTotal) AS Total GROUP BY Year, Month, Category
SUM(CASE WHEN Type='Sale' THEN Amount END) AS SalesTotal, SUM(CASE WHEN type='Return' THEN Amount END) AS ReturnTotal ...