COUNTDISTINCT関数は、特定の属性の、重複を除いた値の数を数えます。
COUNTDISTINCT関数は、特定のフィールドの、重複を除いた値の数をGROUP BYの結果ごとに返します。COUNTDISTINCTは、単一割当て属性および複数割当て属性の両方で使用できます。
セットはNULLにはなりませんが、空にはなる可能性があるため、COUNTDISTINCTは、空のセットを持つレコードも評価します(つまり、指定した複数割当て属性に対して割当てを持たないレコードに対しては、空のセットを返します)。結果から空のセットを無視する方法は、下の2番目の例を参照してください。
COUNTDISTINCT(<attribute>)ここで、attributeは、複数割当て属性または単一割当て属性です。
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
Sizeの値がすべてのレコードで同一であるため、グループは1つのみであり、したがって1レコードしか存在しません。このグループの場合、Color属性に対して独自の値を持つ空ではないセットが2つ存在する(redおよびblue)ためTotalの値は3となり、レコード4には空のセットが返されます。
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の空のセットが数えられていないためです。