プライマリ・コンテンツに移動
Oracle® Big Data Discovery Cloud Service EQLリファレンス

E65371-04
目次へ
目次
索引へ移動
索引

前
次
機械翻訳について

HAVING句

HAVING句は、出力レコードをフィルタするために使用します。

HAVING句の構文は次のとおりです:
HAVING <BooleanExpression>
HAVING句は、次のようなブール式で使用できます:
  • 数値と文字列値の比較: {= , <>, <, <=, >, >=}
  • Null値の評価: <attribute> IS {NULL, NOT NULL, EMPTY, NOT EMPTY}
  • 検索条件の操作: SUBSETIS_MEMBER_OFなど
  • ソース取引明細書のグループ化キー: <attribute-list> IN <source-statement>
次の例では、結果には、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