SQL 関数一覧 (A‐D) > COUNT(集計関数)

レコードの件数、グループ内のレコードの行数、グループ数を求める

syntax

COUNT ( * )
COUNT ( [ DISTINCT | ALL ] expr )
return [ NUMBER ]

parameter

expr任意の式、列名

return

  • グループ内のレコード件数・行数を戻す。

avail

  • SQL でのみ使用可能。(PL/SQL の埋め込み SQL 含む)

COUNT 集計関数の内容

グループにおける 式 expr の行数を戻す。

COUNT 関数の追加説明と注意事項

COUNT 関数にアスタリスク(*)を使用するとグループ内の全レコード数を戻す。
式、または、列名を指定した場合、その式が NULL 値 のものをカウント数に含めない。
さらに DISTINCT を指定すると重複した値の行をカウントに含めない。

多くの場合には GROUP BY 句 を使用せずに全体の行数を取得することが多いが、 グループ単位の行数を求めることも可能。

COUNT の特徴的な使用方法としてはグループ分けされたグループ数を求めるのに COUNT(COUNT(*)) とネストして使用することもできる。

注意

COUNT 関数に 式 を指定した場合 NULL 値 は 「未定義」をあらわす。「未定義」は存在しないとして扱われる。しかし、COUNT 関数には NULL を件数に含めるために特別な アスタリスク(*)を使用する構文が用意されており NULL を含めて行数を取得することができる。そして データが無い場合にも「レコードが選択されませんでした」 ではなく 0 を戻す。

COUNT 使用例

COUNT 関数 サンプルデータ
namedeptsalary
鈴木管理部300,000
高橋管理部400,000
佐藤開発部500,000
小林開発部500,000
山本開発部200,000
青木開発部NULL

COUNT(*) と COUNT(expr) と COUNT( DISTINCT expr) の違い。

SQL> select COUNT(*), COUNT(salary), COUNT(distinct salary)
  2   from count_sample;
 
  COUNT(*) COUNT(SALARY) COUNT(DISTINCTSALARY)
---------- ------------- ---------------------
         6             5                     4

部門でグループ分けしたとき、それぞれ件数は…

SQL> select dept, COUNT(*), COUNT(salary) from count_sample group by dept;
 
DEPT           COUNT(*) COUNT(SALARY)
------------ ---------- -------------
管理部                2             2
開発部                4             3

式を指定して NULL に変換した場合:給与が 500,000 円のものは件数に含ませない。
(NULLIF 関数は、このような使い方はしない。WHERE 条件で記述する方法が正しい。)

SQL> select dept, COUNT(nullif(salary, 500000)), COUNT(null)
  2   from count_sample group by dept;
 
DEPT         COUNT(NULLIF(SALARY,500000)) COUNT(NULL)
------------ ---------------------------- -----------
管理部                                  2           0
開発部                                  1           0

NULLIF 関数

カウント関数のカウント = COUNT(COUNT(*))
部門でグループ分けしたとき、いくつにグループ分けされているのか…(管理部と開発部の 2グループ)

SQL> select count(count(*)) from count_sample group by dept;
 
COUNT(COUNT(*))
---------------
              2


正規表現にマッチする回数

 
アルファベット別 関数一覧 ショートカット
ABCDEFG
HILMNOP
RSTUVWX
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ オラクルサポートセンター