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_IDRANKSALERATE
A00101A1 50000.50
A00102A1 40000.40
A00103C1 10000.10
Z00101B2120001.20
Z00102B2120001.20
SQL Result
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_IDZ00102SALE12000の行はカウントの対象外となります。(左)


P_IDRANKSALERATE
A00101A1 50000.50
A00102A1 40000.40
A00103C1 10000.10
Z00101B2120001.20
Z00102B2120001.20
SQL Result
COUNT(DISTINCT SALE)
4



SQL実行例の説明(3)

T1_SAMPLE表からSALEの行をカウントします。

GROUP BYを指定するとグループ単位の行をカウントすることができます。


SELECT RANK, COUNT ( SALE ) FROM T1_SAMPLE
GROUP BY RANK;


SQL実行の結果(3-1)

T1_SAMPLE表のRANKA1, C1, B2の3つのグループに区分けされます。(左)

それぞれのグループ単位の行をカウントします。(右)


P_IDRANKSALERATE
A00101A1 50000.50
A00102A1 40000.40
A00103C1 10000.10
Z00101B2120001.20
Z00102B2120001.20
SQL Result
RANKCOUNT(SALE)
A12
C11
B22