COUNT
関数は、属性の値を持つレコードの数を返します。
GROUP BY
の結果ごとに、フィールドにNULL以外の値を含むレコードの数がCOUNT
関数によってカウントされます。 COUNT
は、複数割当属性(セット)および単一割当属性の両方と同時に使用できます。
複数割当属性の場合、COUNT
関数は、グループ内のすべてのNULL以外のセットをカウントします。 セットがNULLではないが空である場合があるため、COUNT
では、空のセットを持つレコードもカウントされます(つまり、指定された複数割当属性について割当がないレコードに対しては、空のセットが戻されます)。 結果から空のセットを無視する方法は、次の2番目の例を参照してください。
COUNT
関数の構文は、次のとおりです:
COUNT(<attribute>)
「属性」は、複数割当または単一割当の属性です。
COUNT例
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 FROM ProductState GROUP BY Size
Record 1: Size=small, Total=4
すべてのレコードのサイズの値が同じであるため、グループは1つのみであり、レコードは1つのみです。 このグループの場合、レコード1-3には色割当があり(したがって、空でないセットを返す)、レコード4には色割当がない(空のセットが返される)ため、合計の値は4になります。
COUNT
を使用している場合に、空のセットを除外するには、この例のように、IS NOT EMPTY
関数を含む集計ごとのWHERE
句を使用します:
RETURN result AS SELECT COUNT(Color) WHERE (Color IS NOT EMPTY) AS Total FROM ProductState GROUP BY Size
Record 1: Size=small, Total=3レコード4の空のセットはカウントされないためです。
COUNT(1)形式
COUNT(1)
構文では、特定のコレクション内のすべてのレコード(NULL値を含むレコードを含む)の件数が返されます。 たとえば、販売コレクション内のデータ・レコード数を次のように取得できます:
RETURN Results AS SELECT COUNT(1) AS recordCount FROM SalesState GROUP
文の結果は、データ・レコードの合計数を表す整数である必要があります。