HAS_REFINEMENTSでは、特定の属性について、現在のナビゲーション状態に暗黙的でない絞込みがあるかどうかが計算されます。
HAS_REFINEMENTS関数の構文は、次のとおりです:
HAS_REFINEMENTS(<attribute>)
ここで、「属性」はコレクション内の(任意のデータ型の) Dgraph属性です。
特に、HAS_REFINEMENTSは、特定の属性がグループ内のすべてのレコードで同じ値を持つかどうかを判断します。 その場合、属性は実際の絞込み値を返すことができる必要があります。
戻り値
HAS_REFINEMENTSの戻り動作は次のとおりです:
HAS_REFINEMENTSはNULLを返します。
HAS_REFINEMENTSはFALSEを返します。
HAS_REFINEMENTSはTRUEを返します。
HAS_REFINEMENTSの戻り動作は次のとおりです:
HAS_REFINEMENTSはFALSEを戻します。 これには、グループのすべての行に対して「属性」が空に設定された値が含まれます。
HAS_REFINEMENTSはTRUEを返します。
HAS_REFINEMENTSには、特定の属性に暗黙的でない絞込みがあるかどうかは示されますが、実際に絞込み値を戻すことはありません。
HAS_REFINEMENTSの例
HAS_REFINEMENTSを使用して、ACCT_FIRM属性が使用可能な絞込みを持っているかどうかを判断します:
RETURN Result AS SELECT HAS_REFINEMENTS(ACCT_FIRM) AS Refs FROM CorpData GROUP
この場合、問合せはtrueを返し、属性が非暗黙的絞込みを使用できることを意味します。
NULLなどの空のセットを処理しています
HAS_REFINEMENTSでNULLのような空のセットを処理する場合は、この例(xは複数割当属性)のように、HAS_REFINEMENTSアグリゲータに集計ごとのWHERE句を追加できます:
RETURN Result AS SELECT HAS_REFINEMENTS(x) WHERE (x IS NOT EMPTY) AS Refs FROM CorpData GROUP
HAS_REFINEMENTSの戻り動作は次のようになります:
HAS_REFINEMENTS(x) WHERE (x IS NOT EMPTY)はNULLになります。
HAS_REFINEMENTS(x) WHERE (x IS NOT EMPTY)はFALSEです。
HAS_REFINEMENTS(x) WHERE (x IS NOT EMPTY)はTRUEです。
集計ごとのWHERE句の詳細は、「集計フィルタ」を参照してください。