COUNT関数は、特定の属性の値を持つレコードの数を返します。COUNTDISTINCTは、特定の属性の、重複を除いた値の数を数えます。
COUNT関数は、特定のフィールドの値がNULL以外であるレコードの数を、GROUP BYの結果ごとに数えます。
Record 1: Size=small, Color=red, Color=white Record 2: Size=small, Color=blue, Color=green Record 3: Size=small, Color=black Record 4: Size=small
RETURN result AS SELECT COUNT(Color) AS Total GROUP BY Size
Record 1: Size=small, Total=3
Sizeの値がすべてのレコードで同一であるため、グループは1つのみであり、したがって1レコードしか存在しません。このグループのTotalの値は3です。Colorが割り当てられているのは3レコードのみであるからです。
RETURN results AS SELECT COUNT(1) AS recordCount GROUP
文の結果は、データセット内のレコードの総数を表す整数になるはずです。
COUNTDISTINCT関数は、特定のフィールドの、重複を除いた値の数をGROUP BYの結果ごとに返します。
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 GROUP BY Size
Record 1: Size=small, Total=2
Sizeの値がすべてのレコードで同一であるため、グループは1つのみであり、したがって1レコードしか存在しません。このグループのTotalの値は2です。Color属性の値は、重複を除くとredとblueの2つになるからです。
SELECT COUNTDISTINCT(multiassign_attr) AS n FROM AllBaseRecords集計の前に複数割当てが解除されるため、正しい回答が返されません。
DEFINE a AS SELECT 1 AS n FROM AllBaseRecords GROUP BY multiassign_attr; RETURN b AS SELECT COUNT(n) AS n FROM a