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の空のセットはカウントされないためです。