COUNT 集約関数

COUNT 関数は、行の集合または値の集合内にある行または値の数を戻します。

注: 関数の結果は、 large_aggregation 構成パラメーターの有効化の影響を受ける可能性があります。
Read syntax diagramSkip visual syntax diagramCOUNT(ALLDISTINCTexpression*)

スキーマは SYSIBM です。

expression

ALL が暗黙指定または明示的に指定されている場合、任意の組み込みデータ・タイプの値を戻す式です。 DISTINCT が指定されている場合に、 BLOB、CLOB、DBCLOB、または XML を除く任意の組み込みデータ・タイプの値を戻す式。

この関数の結果は長精度整数 (large integer) です。 結果が NULL 値になることはありません。

COUNT(*) の引数は行の集合になります。 結果は、集合の行の数です。 NULL 値のみから成る行もカウントに組み入れられます。

COUNT(DISTINCT expression) の引数は、値の集合です。 この関数は、引数の値から NULL 値と重複値を除いた値の集合に対して適用されます。 結果は、その集合の中の異なる非 NULL 値の数です。

COUNT(expression) または COUNT(ALL expression) の引数は、値の集合です。 この関数は、引数の値から NULL 値を除いて求めた値の集合に対して適用されます。 結果は、その集合の中の NULL でない値の数です (重複値も含む)。

  • 例 1: EMPLOYEE 表を使用して、ホスト変数女神 (int) を、SEX 列の値が 'F' である行の数に設定します。
       SELECT COUNT(*)
         INTO :FEMALE
         FROM EMPLOYEE
         WHERE SEX = 'F'

    サンプル表を使用してこの例を実行すると、結果として FEMALE に 13 が設定されます。

  • 例 2: EMPLOYEE 表を使用して、メンバーとして少なくとも 1 人の女性を持つ部門 (WORKDEPT) の数をホスト変数 FEMALE_IN_DEPT (int) に設定します。
       SELECT COUNT(DISTINCT WORKDEPT)
         INTO :FEMALE_IN_DEPT
         FROM EMPLOYEE
         WHERE SEX = 'F'

    サンプル表を使用した場合、結果として FEMALE は 5 に設定されます。 (少なくとも 1 人の女性がいる部門は、A00、C01、D11、D21、および E11 です。)