レコードの件数を取得する (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 テーブル
id | name | price | category |
1 | Penguin | 250 | Bird |
2 | Bear | 1050 | Mammal |
3 | Duck | 150 | Bird |
4 | Camel | 550 | Mammal |
5 | Owl | 185 | Bird |
6 | Whale | 880 | Mammal |
上記のテーブルでレコードの個数を求める場合は以下のSQLを実行します。
SELECT COUNT(*) FROM products
結果
結果は以下となります。
補足
列名を付ける場合は以下のSQLを実行します。
SELECT COUNT(*) as cnt FROM products
または、下記でも同様の結果が得られます。
SELECT cnt=COUNT(*) FROM products
結果
結果は以下となります。
例2:条件を指定してレコード数を取得する
products テーブル
id | name | price | category |
1 | Penguin | 250 | Bird |
2 | Bear | 1050 | Mammal |
3 | Duck | 150 | Bird |
4 | Camel | 550 | Mammal |
5 | Owl | 185 | Bird |
6 | Whale | 880 | Mammal |
上記のテーブルでcategoryが"Bird"レコードの個数を求める場合は以下のSQLを実行します。
SELECT COUNT(*) FROM products WHERE category='Bird'
結果
結果は以下となります。
補足
列名を付ける場合のSQLは以下になります。
SELECT COUNT(*) AS cnt FROM products WHERE category='Bird'
または
SELECT cnt=COUNT(*) FROM products WHERE category='Bird'
結果
結果は以下となります。
例3: GROUP BY を用いたグループごとの集計
products テーブル
id | model | name | category | price |
1 | C-XM01 | モーダンチェア | チェア | 56000 |
2 | X-XD05 | ラージデスク | テーブル | 87000 |
3 | A-DA40 | ラウンドダイニングチェア | チェア | 28000 |
4 | O-XX100 | ナチュラルオフィス | チェア | 13800 |
5 | R-D400 | ラウンドダイニングテーブル | テーブル | 128000 |
6 | R7000 | ウッドキャビネット | その他 | 32000 |
上記のテーブルにて、category ごとのレコード数を求める場合は以下のSQLを実行します。
SELECT category, COUNT(id) AS cnt FROM products GROUP BY category
結果
結果は以下となります。
category | cnt |
その他 | 1 |
チェア | 3 |
テーブル | 2 |
例4: 重複を除去したレコード数の取得
重複したレコードを除去してレコード数を取得する場合には、DISTICT文を利用します。
DISTINCTの詳細は
こちらの記事を参照してください。
以下のテーブルを用意します。
products テーブル
id | model | name | category | price |
1 | C-XM01 | モーダンチェア | チェア | 56000 |
2 | X-XD05 | ラージデスク | テーブル | 87000 |
3 | A-DA40 | ラウンドダイニングチェア | チェア | 28000 |
4 | O-XX100 | ナチュラルオフィス | チェア | 13800 |
5 | R-D400 | ラウンドダイニングテーブル | テーブル | 128000 |
6 | R7000 | ウッドキャビネット | その他 | 32000 |
7 | B-250 | ホワイトダブルベッド | ベッド | 184500 |
以下のSQL文を実行します。category が同じものはまとめて1レコードとしてレコード数を求めます。
SELECT DISTINCT COUNT(DISTINCT category) AS cnt FROM products
結果
結果は以下となります。カテゴリが "チェア" "テーブル" "ベッド" "その他" の4レコードにまとめられるためです。
このページのキーワード
- SQL レコード数 取得
- SQL レコード 件数 取得
- SQL テーブル 行数 取得
- SQL COUNT
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
掲載日: 2014-07-22
改訂日: 2024-04-06