SQL-92/99 Oracle Db2 SQL Server MySQL PostgreSQL Access
COUNT ( [ ALL | DISTINCT ] 列 )
戻り値 : カウント数
COUNTは指定した列データにNULL以外の値が何行あるかを求めるときに使用します。
ALLキーワードはデフォルトであるため省略可能です。
列に「*(アスタリスク)」を指定した場合にはNULLを含めた行数をカウントします。
AccessではDISTINCTキーワードを指定できません。
関連キーワード
SQL実行例の説明(1)
・T1_SAMPLE表からSALEの行をカウントします。
SELECT COUNT ( SALE ) FROM T1_SAMPLE;
SQL実行の結果(1-1)
| P_ID | RANK | SALE | RATE |
|---|---|---|---|
| A00101 | A1 | 5000 | 0.50 |
| A00102 | A1 | 4000 | 0.40 |
| A00103 | C1 | 1000 | 0.10 |
| Z00101 | B2 | 12000 | 1.20 |
| Z00102 | B2 | 12000 | 1.20 |
| COUNT(SALE) |
|---|
| 5 |
SQL実行例の説明(2)
T1_SAMPLE表からSALEの行をカウントします。
DISTINCTキーワードを指定すると列に同じ値があるときは最初の一つだけをカウント対象とすることができます。
SELECT COUNT ( DISTINCT SALE ) FROM T1_SAMPLE;
SQL実行の結果(2-1)
T1_SAMPLE表のSALEには2件の同じ値のデータが格納されています。
DISTINCTキーワードが指定してされているのでP_IDがZ00102のSALE12000の行はカウントの対象外となります。(左)
| P_ID | RANK | SALE | RATE |
|---|---|---|---|
| A00101 | A1 | 5000 | 0.50 |
| A00102 | A1 | 4000 | 0.40 |
| A00103 | C1 | 1000 | 0.10 |
| Z00101 | B2 | 12000 | 1.20 |
| Z00102 | B2 | 12000 | 1.20 |
| COUNT(DISTINCT SALE) |
|---|
| 4 |
SQL実行例の説明(3)
T1_SAMPLE表からSALEの行をカウントします。
GROUP BYを指定するとグループ単位の行をカウントすることができます。
SELECT RANK, COUNT ( SALE ) FROM T1_SAMPLEGROUP BY RANK;
SQL実行の結果(3-1)
T1_SAMPLE表のRANKはA1, C1, B2の3つのグループに区分けされます。(左)
それぞれのグループ単位の行をカウントします。(右)
| P_ID | RANK | SALE | RATE |
|---|---|---|---|
| A00101 | A1 | 5000 | 0.50 |
| A00102 | A1 | 4000 | 0.40 |
| A00103 | C1 | 1000 | 0.10 |
| Z00101 | B2 | 12000 | 1.20 |
| Z00102 | B2 | 12000 | 1.20 |
| RANK | COUNT(SALE) |
|---|---|
| A1 | 2 |
| C1 | 1 |
| B2 | 2 |