テーブルや特定の列から、行の数を返す集約関数です。
Synopsis
COUNT(*)

COUNT([ALL | DISTINCT] expression)
引数
* 指定のテーブル内の行の合計を返すために、すべての行をカウントすることを指定。COUNT(*) はパラメータを取らず、ALL キーワードや DISTINCT キーワードとは併用できません。COUNT(*) は、expression パラメータを取らず、特定の列に関する情報はまったく使用しません。COUNT(*) は、重複を除外せずに指定されたテーブルやビューの行数を返します。それぞれの行は、NULL 値を持つ行も含めて、個別にカウントされます。
ALL オプションexpression にあるすべての値の個数を返すように指定します。キーワードが指定されていない場合は、これが既定になります。
DISTINCT オプションexpression にある個別 (一意) の値の個数を返すように指定します。指定されていない場合、既定は ALL です。
expression 任意の有効な式。普通は、カウント算出の対象となるデータ値を含む列の名前を指定します。
概要
COUNT 集約関数は、expression の値のカウントを返します。一般的に expression は、クエリで返される複数行の中のフィールド名 (または、フィールド名を 1 つ以上含む式) です。COUNT では NULL 値をカウントしません。
COUNT は、テーブルやビューを参照する SELECT クエリまたは SELECT サブクエリで使用できます。COUNT は、一般のフィールド値とともに SELECT リストや HAVING 節で使用できます。
COUNT は、WHERE 節では使用できません。SELECT がサブクエリの場合を除いて、JOINON 節では、COUNT を使用できません。
COUNT は、DISTINCT キーワード、または ALL キーワードを取得できます。COUNT で DISTINCT キーワードを使用すると、個別 (一意) の値を持つフィールドのみについて集約演算が実行されます。ALL キーワードは、非 NULL 値のすべてをカウントします。これが既定の動作です。
データ値
COUNT は整数を返します。既定では、集約関数は Display 値ではなく、Logical (内部) データ値を使用します。
COUNT(*) は、NULL 値が格納された行を含む、テーブル内の行の数を返します。COUNT(expression) は、NULL 値が格納されたフィールドをカウントしません。
現在のトランザクション中の変更
すべての集約関数と同様、COUNT は常にデータの現在の状態を返します。現在のトランザクションの分離レベルを問わず、コミット前の変更も現在の状態として扱われます。詳細は、"SET TRANSACTION" および "START TRANSACTION" を参照してください。
以下のクエリは、Sample.Person データベースの行の合計数を返します。
SELECT COUNT(*) AS TotalPersons
     FROM Sample.Person
以下のクエリは、Sample.Person データベースの Home_State の個別の値が格納された各行の合計数を返します。
SELECT Home_State, COUNT(*) AS TotalPersons
     FROM Sample.Person
     GROUP BY Home_State
     ORDER BY Home_State
以下のクエリは、行の合計数、FavoriteColors フィールドの非 NULL 値の合計数、FavoriteColors フィールドの個別の非 NULL 値の合計数の 3 つの値を返します。
SELECT COUNT(*) As TotalPersons,
       COUNT(FavoriteColors) AS WithColorPref,
       COUNT(DISTINCT FavoriteColors) AS ColorPrefs
       FROM Sample.Person
以下のクエリは、連結式のある COUNT を示しています。FavoriteColor フィールドの非 NULL 値の合計数、連結演算子 (||) で他の 2 つのフィールドと連結された FavoriteColors の 非 NULL 値の合計数を返します。
SELECT COUNT(FavoriteColors) AS Color,
       COUNT(FavoriteColors||Home_State) AS ColorState,
       COUNT(FavoriteColors||Spouse) AS ColorSpouse
       FROM Sample.Person
2 つのフィールドが連結されると、COUNT は、いずれのフィールドにも NULL 値がない行のみをカウントします。Sample.Person のすべての行に非 NULL の Home_State 値があるため、FavoriteColors||Home_State の連結では FavoriteColors と同じカウントが返されます。Sample.Person の行の中には Spouse が NULL 値のものがあるため、FavoriteColors||Spouse の連結では、FavoriteColors と Spouse の両方ともが NULL 値でない行のカウントが返されます。
関連項目
AVG SUM