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

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

前
次
機械翻訳について

セットについて

EQLはコレクションの複数割当属性をセットとして表します。

setは要素のグループで構成され、通常は複数割当属性の値から導出されます。 EQLセットは数学セットのように動作するためのものです: セット内の要素の順序は指定されません(一般に監視できません)。 空のセットは、要素を含まないセットです。

セット内のすべての要素は同じデータ型である必要があります。 セット内の要素が2つの複数割当属性(INTERSECTION行関数などを使用して)から取得されている場合、これら2つの複数割当属性が同じデータ型である必要があります。 セットに重複する値を含めることはできず、セットに他のセットを含めることはできません。

EQL文にセットを作成する手順は次のとおりです:
  • 複数割当属性への参照から。 たとえば、複数割当属性を含むSELECTを使用すると、セット内のその属性の値が返されます。
  • 単一割当て属性から、SET関数の引数として。
  • 結果としてセットになる式から。 たとえば、UNION関数を使用すると、2つの入力セットの結合であるセットが戻されます。 これらのセット式には、操作を実行するためのセットが少なくとも1つ必要であることに注意してください。
  • セット・コンストラクタから。

これらのメソッドについては、この項で説明します。

ただし、セットはEQL問合せ間で永続的ではありません。

データ型の設定

セットのデータ型は次のとおりです:
  • 複数割当ブール属性のためのmdex:boolean-set
  • 複数割当dateTime属性のためのmdex:dateTime-set
  • マルチ割当て二重属性のためのmdex:double-set
  • 複数割当の期間属性のためのmdex:duration-set
  • 複数割当のジオコード属性のためのmdex:geocode-set
  • マルチ割当ての32ビットの整数および64ビットの長い属性用のmdex:long-set
  • 複数割当文字列属性のためのmdex:string-set
  • 複数割当時間属性のためのmdex:time-set
セットには厳密に型が指定されます。 特定のセットの要素はすべて同じデータ型である必要があります。 たとえば、次のように設定します:
{3, 4.0, 'five'}
整数、倍精度浮動小数点および文字列を含むため無効です。

セットとNULL

セットにNULL値を含めることはできません。 また、セットはNULLにはできませんが、空になる場合があります。 これらの要件は、複数割当コレクション属性とセット・タイプのその他の式の両方に適用されます。

コレクション・レコードに複数割当属性に対する割当がない場合、EQL問合せではそのレコードの属性値が空のセットになります。

EQL文の結果(DEFINEまたはRETURNのいずれか)にはセットが含まれる場合があります。 これは、たとえば、そのエンティティを使用する問合せに複数割当属性の値をすべて提供するエンティティ(ビュー)を定義できることを意味します。

IS NULL操作およびIS NOT NULL操作はセットに対してはサポートされません。 かわりに、IS_EMPTY関数とIS_NOT_EMPTY関数を使用して、集合が空かどうかを判別してください。 同様に、IS_EMPTYおよびIS_NOT_EMPTY関数はアトミック値(単一割当て属性など)には使用できません。

等価の設定

等価の設定は数学的等価と同じです: 2つのセットは、完全に同じ要素を含む場合にのみ等しく、以下とは等しくなります。 セット内の要素の順序が重要ではありません。 2つの空のセットは同等です。

等価性と非等価性の設定は、同じタイプの2つのセットに対してのみ定義されます。 たとえば、等価性についてmdex:long-setmdex:geocode-setを比較することはできません。比較するとEQLタイプ・エラーになります。

= (等しい)演算子および<> (等しくない)演算子を使用して、セット間の等価性をテストできます。 集合に対する< (より小さい)演算子と> (より大きい)演算子は定義されていないことに注意してください。

集合、関数および演算子

この章では、セットで使用される集計および行関数について説明します。

また、セットは、セットと単一割当て属性の両方で動作する次の機能で使用でき、このガイドの他の部分で説明されています:
  • ARBのセットは、グループ内のすべての行(空のセットと空でないセットの両方)を参照し、いずれかの行のセット値を選択します。 この関数の詳細は、ARBを参照してください。
  • COUNTでは、NULL以外のすべてのセット(つまり、空のものを含む、グループ内のすべてのセット)がカウントされます。 詳細は、「COUNT関数」を参照してください。
  • COUNT_APPROXでは、NULL以外のすべてのセットもカウントされます。 詳細は、COUNT_APPROXを参照してください。
  • COUNTDISTINCTでは、空のセットを含むすべてのセットがカウントされます。 詳細は、「COUNTDISTINCT関数」を参照してください。
  • APPROXCOUNTDISTINCTでは、空のセットを含むすべてのセットもカウントされます。 詳細は、「APPROXCOUNTDISTINCT関数」を参照してください。
  • HAS_REFINEMENTS特定の属性が、現在のナビゲーション状態に暗黙的でない絞込みを持つかどうか。 詳細は、HAS_REFINEMENTSを参照してください。

前述のように、= (等価)演算子および<> (等しくない)演算子を使用して、セット間の等価性をテストできます。 他の演算子(*乗算演算子など)は、セットに対して使用できません。