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

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

前
次
機械翻訳について

COUNTDISTINCT関数

COUNTDISTINCT関数は、属性の個別値の数をカウントします。

COUNTDISTINCT関数は、GROUP BY結果ごとに、フィールド内の一意の値の数を返します。 COUNTDISTINCTは、単一割当て属性と複数割当て属性の両方に使用できます。

セットがNULLではないが空である可能性があるため、COUNTDISTINCTでは、空のセットを持つレコードも評価されます(つまり、指定された複数割当属性を割り当てられていないレコードに対して空のセットが返されます)。 結果から空のセットを無視する方法は、次の2番目の例を参照してください。

COUNTDISTINCT関数の構文は、次のとおりです:
COUNTDISTINCT(<attribute>)
「属性」は、複数割当または単一割当の属性です。

COUNTDISTINCTの例

次のレコードには、単一割当てサイズ属性および複数割当て色属性が含まれます:
Record 1: Size=small, Color=red
Record 2: Size=small, Color=blue
Record 3: Size=small, Color=red
Record 4: Size=small
次の文は、色属性の異なる値のサイズごとに返されます:
RETURN Result AS 
SELECT COUNTDISTINCT (Color) as Total
FROM ProductState 
GROUP BY Size
文の結果は次のとおりです:
Record 1: Size=small, Total=3

すべてのレコードのサイズの値が同じであるため、グループは1つのみであり、レコードは1つのみです。 このグループの場合、色属性が一意の値(赤と青)を持つ空でないセットが2つあり、レコード4に対して空のセットが返されるため、合計の値は3となります。

複数割当属性を持つCOUNTDISTINCTを使用している場合に、空のセットを除外するには、この例のように、IS NOT EMPTY関数を含むWHERE句を使用します:
RETURN Result AS
SELECT COUNTDISTINCT(Color) WHERE (Color IS NOT EMPTY) AS Total
FROM ProductState
GROUP BY Size
文の結果は次のとおりです:
Record 1: Size=small, Total=2
レコード4の空のセットはカウントされないためです。