ywork2020.com

Title

列の行数を求める

目次 (INDEX)

COUNT とは

ここで説明する COUNT とは次の語句からなる SQL の関数です。
count
読み: カウント
意味: 数える

目次に戻る

COUNT 関数の概要

この関数は、集計関数の 1つであり、引数に指定したカラムの行数を求めることができます。

引数に指定した列の値に NULL 値があった場合は NULL 値を除く行数となります。 また、列名に 「 * 」 アスタリスクを指定すると、全ての行数を数えることになります。

目次に戻る

サンプルデータベースとテーブルの構造

データ抽出用のサンプルテーブルが必要でしたので事前に作成しています。

現在、データベースにはサンプルとして以下に示す構造の sales テーブルを作成しており、 そのテーブルに 2020年 2月の売上のサンプルデータを登録した状態になっています。

サンプルコード: テーブルの作成

サンプルテーブルを以下のクエリで作成しました。

CREATE TABLE sales(
	伝票番号 int(11),
	商品コード varchar(10),
	売上金額 decimal(10.2),
	売上日 date
);
カラム1
(伝票番号)
カラム2
(商品コード)
カラム3
(売上金額)
カラム4
(売上日)
データデータデータデータ
データデータデータデータ

目次に戻る

サンプルコードと実行結果

ここからは実際に稼働しているデータベースに接続してクエリを実行していきます。 下記に配置された各ボタンをクリックすると、ボタンに書かれているサンプルクエリを実行して結果を表示します。

サンプルコード: SQL (SELECT 文の基本的な使い方)

SELECT * FROM テーブル名;

これはテーブルデータを抽出するための基本構文です。
指定したテーブルのデータを全件、全フィールドで抽出します。 この単純なクエリはデータ量が少ない場合や開発段階では利用することが多いと思いますが、実際の運用では使いません。

実行:

サンプルコード: SQL (COUNT 関数で全行数を求める)

SELECT COUNT(*) FROM テーブル名;
実行:

説明:
salesテーブルの全列をCOUNT関数の引数にしてクエリしました。 結果として、全レコード数を求めることができました。

サンプルコード: SQL (COUNT 関数と DISTINCT 句の併用)

補足的なサンプルになりますが、 例えば COUNT 関数の引数に DISTINCT 句を使って重複している列の値を除いてからカウントすることもできます。

SELECT COUNT(DISTINCT カラム名) FROM テーブル名;
実行:

説明:
sales テーブルの商品コードの列から重複しているレコードを除いた結果を COUNT 関数の引数にしてクエリしました。 結果として、商品コードが幾つあるのかを求めることができました。

目次に戻る

SQL の仕様上の注意点

※ SQL の予約句はアルファベットの大文字と小文字を区別しませんが、 任意で作成したデータベースやテーブル、カラムの名前などは区別されるので注意が必要です。

目次に戻る