レコード数を取得するにはCOUNT関数を使用します.
COUNT関数はSELECT文により選択されたレコードの件数を返します. COUNT関数の引数に*(アスタリスク)を指定した場合はすべてのレコード数を取得することができます.
SELECT COUNT(*)
FROM テーブル名
COUNT関数の引数に列名を指定した場合は,その列の値がNULL以外のレコード数を取得します.
SELECT COUNT(列名)
FROM テーブル名
COUNT関数の引数でDISTINCT句を使用すると,重複した値を1つにまとめてからレコード数を取得することができます.
SELECT COUNT(DISTINCT 列名)
FROM テーブル名
GROUP BY句を使用することで,同じ値を持つデータごとにグループ化してレコード数を求めることができます.
SELECT 集計キー1, 集計キー2, ..., COUNT(列名1), COUNT(列名2), ...
FROM テーブル名
GROUP BY 集計キー1, 集計キー2, ...
注意.
SELECT句には,GROUP BY句で指定した列と集計関数のみを指定することができます.
例として以下のテーブル(従業員マスタ)のレコード数を求めます.
従業員マスタ
従業員コード | 従業員名 | 年齢 | 種別 |
---|---|---|---|
A0001 | チャーリー・ブラウン | 15 | 人間 |
A0002 | ペパーミント・パティ | 15 | 人間 |
A0003 | ルシール・ヴァン・ぺルト | 16 | 人間 |
B0001 | スヌーピー | 4 | 犬 |
C0001 | ウッドストック | 3 | 鳥 |
Z0001 | <NULL> | <NULL> | <NULL> |
従業員マスタの全レコードを対象にしてレコード数を求める場合は以下のようにSQLを書きます. なお以下のサンプルは分かりやすいようにAS句を使用して列に別名をつけています.
SQL
SELECT COUNT(*) AS 従業員マスタの件数
FROM 従業員マスタ
結果
従業員マスタの件数 |
---|
6 |
従業員テーブルに格納されている種別の種類数を求める場合は以下のようにSQLを書きます.
SQL
SELECT COUNT(DISTINCT種別) AS 種類数
FROM 従業員マスタ
結果
種類数 |
---|
3 |
種別ごとにレコード数を求める場合は以下のようにSQLを書きます.
SQL
SELECT COUNT(*) AS レコード数, 種別
FROM 従業員マスタ
GROUP BY 種別
結果
レコード数 | 種別 |
---|---|
3 | 人間 |
1 | 犬 |
1 | 鳥 |
注意.
サンプルで使用するテーブルは説明のため正規化を行っていなかったり,一般的でない列が含まれている場合があります.ご容赦ください.