SQL Serverでは、 COUNT_BIG()
関数は、グループ内で見つかったアイテムの数を返します。これを使用して、テーブルまたは結果セットに含まれる行数を確認できます。
この関数は、 COUNT()
と同様に機能します 働き。違いは、 COUNT()
結果をintとして返します 、一方、 COUNT_BIG()
結果をbigintとして返します 。
したがって、 COUNT_BIG()
結果セットの行数が非常に多い(つまり、2,147,483,647より大きい)と予想される場合に便利です。
構文
構文は次のようになります:
-- Aggregation Function Syntax COUNT_BIG ( { [ [ ALL | DISTINCT ] expression ] | * } ) -- Analytic Function Syntax COUNT_BIG ( [ ALL ] { expression | * } ) OVER ( [>] )
ALL
集計関数をすべての値に適用します。これがデフォルト値です。
DISTINCT
関数が一意のnull以外の値の数を返すことを指定します。
式
あらゆるタイプの式です。集計関数とサブクエリは、式ではサポートされていません。
*コード> 重複する行、およびnull値を含む行を含め、すべての行をカウントして返す必要があることを指定します。
COUNT(*)
パラメータを受け取らず、 DISTINCT
の使用をサポートしていません 。また、式も必要ありません パラメータ(特定の列に関する情報を使用しないため)。
OVER([
FROM
によって生成された結果セットを分割します 関数が適用されるパーティションへの句。指定しない場合、関数はクエリ結果セットのすべての行を単一のグループとして扱います。
例1-基本的な使用法
この関数がどのように機能するかを示す基本的な例を次に示します。
USE WideWorldImportersDW; SELECT COUNT_BIG(*) AS 'Row Count' FROM Fact.[Order];
結果:
+-------------+ | Row Count | |-------------| | 231412 | +-------------+
この場合、 Fact。[Order] には231412行あります。 テーブル。
この場合、 COUNT()
を使用できます。 行数がintに対して十分に小さいため、同じ結果を返します。 処理します。
例2–より大きな結果セット
COUNT_BIG()
を使用することの本当の利点 結果セットが前の例よりもはるかに大きい場合です。
例:
SELECT COUNT_BIG(*) AS 'Row Count' FROM ReallyBigTable;
結果:
+-----------------+ | Row Count | |-----------------| | 9147483648 | +-----------------+
この場合、行数が非常に多いため、 int それを処理することはできません。幸い、 COUNT_BIG()
を使用できます 、結果を bigintとして返すため 。
その他の例
その他の例については、 COUNT()
の方法をご覧ください。 SQLServerで動作します。この記事には、ここにリストされているよりも多くの例が記載されています。これらはすべて、 COUNT_BIG()
にも適用できます。 。
代替案:APPROX_COUNT_DISTINCT()
非常に大きなデータセットを使用している場合は、 APPROX_COUNT_DISTINCT()
の使用を検討してください。 COUNT_BIG(DISTINCT)
の代わりに ある場合には。
APPROX_COUNT_DISTINCT()
正確な値ではなく、おおよその値を返します。ただし、 COUNT_BIG()
よりもはるかに応答性が高くなるように設計されています 、したがって、応答性が精度よりも重要である場合に役立つ可能性があります。
null以外の一意の値を返すように設計されているため、通常は DISTINCT
を使用する場合にのみ関連します。 COUNT_BIG()
を含む句 。
また、これを書いている時点では、 APPROX_COUNT_DISTINCT()
パブリックプレビューステータスです。