COUNT
テーブルの行数を求める場合は、COUNT 関数を使用します。テーブル全体の行数を求めたい
場合は、COUNT 関数の引数には、「全ての列」を意味する「(アスタリスク)」を指定します。
また、関数の引数に「」を使用出来るのは、COUNT 関数のみとなります。
任意の列から NULL の行を除外して数えたい場合は、対象とする列を限定して引数に記述し
ます。以下に「sel_price」列から NULL を除外した件数を求める例を示します。
レコード数の取得
COUNT関数はSELECT文により選択されたレコードの件数を返します。 COUNT関数の引数に*(アスタリスク)を指定した場合はすべてのレコード数を取得することができます。
SELECT COUNT(*)
FROM テーブル名
NULLを含まないレコード数の取得
COUNT関数の引数に列名を指定した場合は,その列の値がNULL以外のレコード数を取得します.
SELECT COUNT(列名)
FROM テーブル名
重複を含まないレコード数の取得
COUNT関数の引数でDISTINCT句を使用すると,重複した値を1つにまとめてからレコード数を取得することができます。
SELECT COUNT(DISTINCT 列名)
FROM テーブル名
GROUP BY
GROUP BY句を使用することで,同じ値を持つデータごとにグループ化してレコード数を求めることができます。
なお、GROUP BY 句の位置にも厳密なルールがあって、必ず FROM 句の後ろ(WHERE 句があるならさらにその後ろ)におく必要があります。また、GROUP BY 句を使用する場合、SELECT句に集約キー以外の列名を書くとことは出来ません。
※集約キー(GROUP BY句に指定する列のことを集約キーやグループ列と呼ぶ。)以外の名前など種類は出せません。
従業員コード | 従業員名 | 年齢 | 種別 |
---|---|---|---|
A0001 | チャーリー・ブラウン | 15 | 人間 |
A0002 | ペパーミント・パティ | 15 | 人間 |
B0001 | スヌーピー | 4 | 犬 |
C0001 | ウッドストック | 3 | 鳥 |
グループごとに合計と平均を求める
種別ごとに年齢の合計と平均を求める場合は以下のようにSQLを書きます。
SQL
SELECT SUM(年齢) AS 年齢の合計, AVG(年齢) AS 年齢の平均, 種別
FROM 従業員マスタ
GROUP BY 種別
結果
年齢の合計 | 年齢の平均 | 種別 |
---|---|---|
30 | 15 | 人間 |
4 | 4 | 犬 |
3 | 3 | 鳥 |