レコードの件数を取得する (COUNT 関数の利用) - SQL

テーブル内のレコードの件数(テーブルの行数)を取得するSQLを紹介します。

概要

テーブルのレコードの数(テーブル行数)を求めるには COUNT 関数を利用します。
メモ
レコードの数ではなく、レコードのフィールドの値の合計を求める場合はSUM関数を利用します。詳しくは、こちらの記事を参照してください。

書式

COUNT関数の書式は次の通りです。
SELECT COUNT(*) FROM (テーブル名)
または
SELECT COUNT((列名)) FROM (テーブル名)
補足
実行速度の向上のため、多くの場合でidとして設定されている列名を使用することが多いです。
SELECT COUNT((id列名)) FROM (テーブル名)

条件を指定する場合は次の書式を利用します。
SELECT COUNT(*) FROM (テーブル名) WHERE (条件式)
または
SELECT COUNT((列名)) FROM (テーブル名) WHERE (条件式)

DISTINCT を利用し重複を除去する場合の書式は以下です。
SELECT COUNT(DISTINCT (重複を判定する列名)) FROM (テーブル名)

例1:テーブルのすべてのレコード数を取得する

products テーブル
idnamepricecategory
1Penguin250Bird
2Bear1050Mammal
3Duck150Bird
4Camel550Mammal
5Owl185Bird
6Whale880Mammal

上記のテーブルでレコードの個数を求める場合は以下のSQLを実行します。
SELECT COUNT(*) FROM products

結果

結果は以下となります。
(列名なし)
6

補足

列名を付ける場合は以下のSQLを実行します。
SELECT COUNT(*) as cnt FROM products
または、下記でも同様の結果が得られます。
SELECT cnt=COUNT(*) FROM products

結果

結果は以下となります。
cnt
6

例2:条件を指定してレコード数を取得する

products テーブル
idnamepricecategory
1Penguin250Bird
2Bear1050Mammal
3Duck150Bird
4Camel550Mammal
5Owl185Bird
6Whale880Mammal

上記のテーブルでcategoryが"Bird"レコードの個数を求める場合は以下のSQLを実行します。
SELECT COUNT(*) FROM products WHERE category='Bird'

結果

結果は以下となります。
(列名なし)
3

補足

列名を付ける場合のSQLは以下になります。
SELECT COUNT(*) AS cnt FROM products WHERE category='Bird'
または
SELECT cnt=COUNT(*) FROM products WHERE category='Bird'

結果

結果は以下となります。
cnt
3

例3: GROUP BY を用いたグループごとの集計

products テーブル
idmodelnamecategoryprice
1C-XM01モーダンチェアチェア56000
2X-XD05ラージデスクテーブル87000
3A-DA40ラウンドダイニングチェアチェア28000
4O-XX100ナチュラルオフィスチェア13800
5R-D400ラウンドダイニングテーブルテーブル128000
6R7000ウッドキャビネットその他32000

上記のテーブルにて、category ごとのレコード数を求める場合は以下のSQLを実行します。
SELECT category, COUNT(id) AS cnt FROM products GROUP BY category

結果

結果は以下となります。
categorycnt
その他1
チェア3
テーブル2

例4: 重複を除去したレコード数の取得

重複したレコードを除去してレコード数を取得する場合には、DISTICT文を利用します。 DISTINCTの詳細はこちらの記事を参照してください。

以下のテーブルを用意します。
products テーブル
idmodelnamecategoryprice
1C-XM01モーダンチェアチェア56000
2X-XD05ラージデスクテーブル87000
3A-DA40ラウンドダイニングチェアチェア28000
4O-XX100ナチュラルオフィスチェア13800
5R-D400ラウンドダイニングテーブルテーブル128000
6R7000ウッドキャビネットその他32000
7B-250ホワイトダブルベッドベッド184500

以下のSQL文を実行します。category が同じものはまとめて1レコードとしてレコード数を求めます。
SELECT DISTINCT COUNT(DISTINCT category) AS cnt FROM products

結果

結果は以下となります。カテゴリが "チェア" "テーブル" "ベッド" "その他" の4レコードにまとめられるためです。
cnt
4

このページのキーワード
  • SQL レコード数 取得
  • SQL レコード 件数 取得
  • SQL テーブル 行数 取得
  • SQL COUNT
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
掲載日: 2014-07-22
改訂日: 2024-04-06
iPentec all rights reserverd.