COUNT_BIG
COUNT_BIG 関数は、行または値の集合の中にある行の数または値の数を戻します。 この関数は COUNT 関数に類似していますが、COUNT 関数とは異なり、結果の 値は整数の最大値より大きい値をとることができます。
.-ALL------. >>-COUNT_BIG--(--+-+----------+--expression-+--)--------------->< | '-DISTINCT-' | '-*------------------------'
- expression
- 引数の値には、データ・リンクを除く任意の組み込みデータ・タイプを指定できます。 XML は、COUNT_BIG(DISTINCT expression) で使用できません。
関数の結果は、精度が 31 で位取りが 0 である 10 進数です。結果は NULL であってはなりません。
COUNT_BIG(*) の引数は、行の集合です。この結果は、その集合の行の数になります。 この行の数には、NULL 値しか入っていない行も含まれます。
COUNT_BIG(expression) の引数は、値の集合です。 この関数は、引数の値から NULL 値を除いた値の集合に適用されます。 結果はその集合の値の個数です。
COUNT_BIG(DISTINCT expression) を含むステートメントの実行時に *HEX 以外の照合順序が有効で、 しかも引数が SBCS データ、混合データ、または Unicode データの場合、 結果は、集合の各値の重み付けされた値の比較によって求められます。 値の重み付けは、該当の照合順序に基づいています。
例
- COUNT の例を参照して、COUNT を COUNT_BIG と読み替えてください。 結果のデータ・タイプを除いて、結果は同じです。
- 特定の列上でカウントするためには、ソース化関数は列のタイプを指定しなければなりません。
この例では、CREATE FUNCTION ステートメントが、CHAR として定義された任意の列を取るソース化関数を作成し、COUNT_BIG を使用してカウントを実行し、その結果を倍精度の浮動小数点数として戻します。以下の照会は、サンプルの従業員表内で固有の部門数をカウントします。
CREATE FUNCTION RICK.COUNT(CHAR(19)) RETURNS DOUBLE SOURCE QSYS2.COUNT_BIG(CHAR()); SET CURRENT PATH RICK, SYSTEM PATH SELECT COUNT(DISTINCT WORKDEPT) FROM EMPLOYEE;