COUNT_BIG 集約関数

COUNT_BIG 関数は、一連の行または値の行の数または値の数を戻します。 これは COUNT とほぼ同じですが、 結果が整数の最大値より大きくなる場合がある点が異なります。

Read syntax diagramSkip visual syntax diagramCOUNT_BIG(ALLDISTINCTexpression*)

スキーマは SYSIBM です。

expression

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

関数の結果は、精度 31 および位取り 0 の 10 進数です。 結果が NULL 値になることはありません。

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

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

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

  • 例 1: COUNT の例を参照して、COUNT を COUNT_BIG に置き換えてください。 結果のデータ・タイプ以外は、同じ結果になります。
  • 例 2: アプリケーションによっては、COUNT を使用する必要があるにもかかわらず、 最大整数よりも大きい値をサポートする必要がある場合があります。 これは、ソースから派生されたユーザー定義関数を使用し、 SQL パスを設定して行うことができます。 以下の一連のステートメントは、 COUNT_BIG に基づいて COUNT(*) をサポートするソースからの派生関数を作成して、 精度 15 の 10 進数を戻す方法を示しています。 COUNT_BIG に基づくソースからの派生関数が、 ここに示されている照会などの後続のステートメントで使用されるように、 SQL パスが設定されます。
       CREATE FUNCTION RICK.COUNT() RETURNS DECIMAL(15,0)
         SOURCE SYSIBM.COUNT_BIG();
       SET CURRENT PATH RICK, SYSTEM PATH;
       SELECT COUNT(*) FROM EMPLOYEE;
    ソースからの派生関数は、COUNT(*) をサポートするパラメーターを指定せずに定義されていることに注意してください。これが有効なのは、関数 COUNT を指定し、関数の使用時に関数をスキーマ名で修飾しない場合だけです。 COUNT 以外の名前を使用して COUNT(*) と同じ結果を得るためには、 パラメーターを指定せずに関数を呼び出します。 たがって、RICK.COUNT が RICK.MYCOUNT として定義されている場合、 照会は以下のように書く必要があります。
       SELECT MYCOUNT() FROM EMPLOYEE;
    特定の列についてカウントを取る場合、 ソースからの派生関数はその列のタイプを指定する必要があります。 以下のステートメントによって作成されたソースからの派生関数は、 CHAR 列を引数として取り、COUNT_BIG を使用してカウントを実行します。
       CREATE FUNCTION RICK.COUNT(CHAR()) RETURNS DOUBLE
         SOURCE SYSIBM.COUNT_BIG(CHAR());
       SELECT COUNT(DISTINCT WORKDEPT) FROM EMPLOYEE;