【MySQL】レコード数をカウントする(count の使い方)

レコード数をカウントするには「COUNT」関数を使います。

ここでは MySQLコマンド「COUNT」の具体的な使い方を解説していきます。

 

「COUNT」の基本

「COUNT」は、「SELECT」などと組み合わせて使います。

以下のようにすると、対象のレコード数をカウントできます。

SELECT COUNT(*) FROM テーブル名;
メモ

SELECT 文の詳しい使い方はこちら

 

テーブル全体のレコード数をカウントする

実際にMySQLサーバーに接続し、動作を確認してみましょう。

 

あらかじめ「test」データベースの「users」テーブルに、以下のようにデータが保存されている例で進めていきます。

name age
佐藤 21
鈴木 25
田中 21
山田 32
山下 (NULL)

※「NULL」は値がないフィールド 

データを保存するコマンド例

CREATE DATABASE test;
USE test;
CREATE TABLE users (name VARCHAR(100), age INT);
INSERT INTO users (name, age) VALUES ('佐藤', 21);
INSERT INTO users (name, age) VALUES ('鈴木', 25);
INSERT INTO users (name, age) VALUES ('田中', 21);
INSERT INTO users (name, age) VALUES ('山田', 32);
INSERT INTO users (name) VALUES ('山下');
メモ

CREATE DATABASE 文の詳しい使い方はこちら

USE 文の詳しい使い方はこちら

CREATE TABLE 文の詳しい使い方はこちら

INSERT INTO 文の詳しい使い方はこちら

 

それでは「users」テーブル全体のレコード数をカウントしてみましょう。コマンドは以下。

SELECT COUNT(*) FROM users;

 

コマンドを実行すると 以下のように結果が表示され、「users」テーブルには5件のデータが登録されていることがわかりました。

 

NULLのデータを除外してカウントする

指定したカラムに保存されている値が NULL のデータを除外してカウントすることもできます。

 

以下は「age」カラムの値が NULL のデータを除外してカウントする例。

SELECT COUNT(age) FROM users;

 

コマンドを実行すると、該当するデータが4件であることがわかりました。

 

条件に一致するレコード数をカウントする

今度は WHERE も使って、条件に一致するレコード数をカウントしてみましょう。

以下のようにすると、「age」カラムの値が 25以上のレコード数をカウントできます。

SELECT COUNT(*) FROM users WHERE age >= 25;

 

コマンドを実行すると、該当するデータが2件であることがわかりました。

メモ

WHERE の詳しい使い方はこちら

 

グループごとのレコード数をカウントする

今度は「GROUP BY」を使ってデータをグループ化し、それぞれのグループに含まれるレコード数をカウントしてみましょう。

以下のようにすると、「age」カラムのそれぞれの値ごとにレコード数をカウントすることができます。

SELECT age, COUNT(*) FROM users GROUP BY age;

 

コマンドを実行すると、以下のように結果が表示されました。

メモ

GROUP BY の詳しい使い方はこちら

 

ここまでが「COUNT」の基本!

理解をさらに深めたい方は以下からの内容もご覧ください。

 

「COUNT」関数で条件を指定してカウントする

COUNT(*) のようにアスタリスク(*)を指定することで、すべてのレコードをカウントすることができますが、以下のように条件を加えて 該当するレコード数をカウントすることもできます。

SELECT COUNT(条件 OR NULL) FROM テーブル名;
メモ

条件 OR NULL の箇所は、条件に当てはまれば TRUE、当てはまらない場合は NULL となります。

COUNT関数は NULL の値をカウントしないことを応用しています。

 

「age」カラムの値が21と25のレコード数をカウントするコマンド例

SELECT COUNT(age = 21 OR NULL), COUNT(age = 25 OR NULL) FROM users;

 

まとめ

以上、MySQLコマンド「COUNT」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「COUNT」でレコード数をカウントすることができる。
  • カラム名を指定すると、そこに保存されている値が NULL のデータを除外してカウントすることができる。
  • 「GROUP BY」を組み合わせると、グループごとのレコード数をカウントすることができる。