SQL道場 集計関数 COUNT関数

SQLで行数を数えるCOUNT関数について記載しています。

対応データベース:SQLServer MySQL Oracle PostgreSQL DB2 SQLite Access ANSI

COUNT関数の文法

SELECT COUNT(*) FROM テーブル
SELECT COUNT(列名) FROM テーブル
SELECT COUNT(DISTINCT or ALL|列名) FROM テーブル
引数
Arguments
列名
Column name
行数を数える列
column counting rows
返値
return value
数値型 行数
Number of rows

COUNT関数はテーブル内の行数を数えます。引数に*(アスタリスク)を指定するとテーブル内の全行数を数えます。列名の前にDISTINCTを指定すると値が入力されている行数を値の重複を除いて数えます。列名の前にALLを指定すると値が入力されているすべての行数を数えます。DISTINCT、ALLのどちらも指定しない場合はALLを指定した場合と同じです。COUNT関数は全てのデータ型に対して使用できます。

実行例

社員テーブル

社員名(EMP_NAME)年齢(EMP_AGE)性別(EMP_SEX)時給(EMP_SALARY)
山田太郎351,000
鈴木花子201,500
竹下次郎302,500
佐藤梅子40800
ジュン鎌田23800
田中誠二202,500

MySQLの実行例

/* MySQL 社員テーブルの全ての行を求めるサンプル */
SELECT COUNT(*) FROM testdb.MST_EMPLOYEE;
MySQL 社員テーブルの全ての行を求めるサンプル実行結果
/* MySQL 重複している時給を除いた行数を求めるサンプル */
SELECT COUNT(DISTINCT EMP_SALARY) FROM testdb.MST_EMPLOYEE;
MySQL 重複している時給を除いた行数を求めるサンプル実行結果

SQLServerの実行例

/* SQLServer 社員テーブルの全ての行を求めるサンプル */
SELECT COUNT(EMP_SALARY) FROM [testdb].[dbo].[MST_EMPLOYEE];
SQLServer 社員テーブルの全ての行を求めるサンプル実行結果
/* SQLServer 重複している時給を除いた行数を求めるサンプル */
SELECT COUNT(DISTINCT EMP_SALARY) FROM [testdb].[dbo].[MST_EMPLOYEE];
SQLServer 重複している時給を除いた行数を求めるサンプル実行結果