HAVING句

HAVING句は、出力レコードをフィルタリングするときに使用します。

HAVING句の構文は次のとおりです。
HAVING <BooleanExpression>
HAVING句は、次のような任意のブール式とともに使用できます。
次に示す例では、結果に含まれるのは売上が$10,000以上の販売員のみです。
RETURN Reps AS
SELECT SUM(Amount) AS SalesTotal
FROM SaleState
GROUP BY SalesRep
HAVING SalesTotal > 10000
HAVING句は、同じ文で定義された属性のみを参照できます(SELECT句で定義された別名属性など)。たとえば、次の文は無効です。
// Invalid because "Price" is not defined in the statement (i.e., Price is a collection attribute).
Return results AS
SELECT SUM(Price) AS TotalPrices
FROM SaleState
GROUP BY WineType
HAVING Price > 100
無効な文の例では、次のエラー・メッセージが返されます。
In statement "results": In HAVING clause: Local statement attribute "Price" is not in scope 
エラーを修正するには、ローカル文属性(Price)を文内で定義された属性(TotalPrices)に置き換えます。
// Valid because "TotalPrices" is defined in the statement.
Return results AS
SELECT SUM(Price) AS TotalPrices
FROM SaleState
GROUP BY WineType
HAVING TotalPrices > 100