HAVING (Entity SQL)
グループまたは集計の検索条件を指定します。
[ HAVING search_condition ]
引数
- search_condition
グループまたは集計の検索条件を指定します。HAVING 句を GROUP BY ALL と共に使用した場合、HAVING 句により ALL は無効になります。
解説
HAVING 句は、グループ化の結果について追加的なフィルタ処理条件を指定する場合に使用します。クエリ式で GROUP BY 句が指定されていないと、暗黙的な単独セットのグループになります。
[!メモ]
HAVING は、SELECT (Entity SQL) ステートメントと共にのみ使用できます。GROUP BY (Entity SQL) を使用しない場合、HAVING は WHERE 句と同様に動作します。
GROUP BY 操作後に適用される場合を除いて、HAVING 句は WHERE 句と同様に動作します。つまり、次の例のように、HAVING 句は別名および集計のグループ化のみを参照できます。
SELECT Name, SUM(o.Price * o.Quantity) AS Total FROM orderLines AS o GROUP BY o.Product AS Name
HAVING SUM(o.Quantity) > 1
前述のグループは、複数の製品を含むグループのみに制限されています。
例
次の Entity SQL のクエリでは、HAVING および GROUP BY 操作を使用して、グループまたは集計の検索条件を指定します。このクエリは、AdventureWorks Sales Model に基づいています。このクエリをコンパイルして実行するには、次の手順を実行します。
「PrimitiveType 結果を返すクエリの実行方法 (EntityClient)」の手順に従います。
次のクエリを引数として
ExecutePrimitiveTypeQuery
メソッドに渡します。
SELECT VALUE name FROM AdventureWorksEntities.Product
as P GROUP BY P.Name HAVING MAX(P.ListPrice) > 5
出力を次に示します。
Value: LL Mountain Seat Assembly
Value: ML Mountain Seat Assembly
Value: HL Mountain Seat Assembly
Value: LL Road Seat Assembly
Value: ML Road Seat Assembly