COUNT

COUNT関数は、問合せによって戻された行数を返します。集計関数または分析関数として使用できます。集計関数の詳細は、「集計関数」を参照してください。分析関数の詳細は、「分析関数」を参照してください。

SQL構文

COUNT ({* | [ALL | DISTINCT]{Expression|ROWID}}) 
[OVER ([AnalyticClause])]

パラメータ

COUNTには、次のパラメータがあります。

パラメータ 説明

Expression

任意の数値データ型、または暗黙的に数値型に変換可能な数値以外の型を取ります。

行の数を返します。ExpressionはNULLにはなりません。表の行数の詳細は、『Oracle TimesTen In-Memory Databaseシステム表およびビュー・リファレンス』「SYS.TABLES」に記載されている「NUMTUPS」フィールドを参照してください。

*

*を指定すると、COUNT関数は重複値やNULL値を含むすべての行を返します。COUNTがnullを返すことはありません。

ALL

集計関数の引数に重複する行を含めます。ALLまたはDISTINCTのいずれも指定しない場合、ALLとみなされます。

DISTINCT

集計関数の引数から、重複する列の値を削除します。

ROWID

TimesTenでは、表に保存される各行にROWIDと呼ばれる一意のIDが割り当てられます。ROWID値はROWID擬似列から取得されます。詳細は、「ROWID疑似列」を参照してください。

OVER ([AnalyticClause])

指定すると、集計分析関数を示します。分析関数の詳細は、「分析関数」を参照してください。

説明

  • デフォルトの戻り型は、TT_BIGINTです。TT_CountAsIntオプティマイザ・ヒントを指定すると、COUNT関数がTT_INTEGERデータ型とTT_BIGINTデータ型のどちらを返すかを制御できます。このヒントに1の値を指定した場合、戻りデータ型はTT_INTEGERになります。0の値を指定した場合(またはこのヒントを指定しない場合)、戻りデータ型はTT_BIGINTになります。TT_CountAsIntオプティマイザ・ヒントは、文レベルおよび接続レベルでサポートされます。文レベルのオプティマイザ・ヒントの詳細は、「文レベルのオプティマイザ・ヒント」を参照してください。接続レベルのオプティマイザ・ヒントの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』「OptimizerHint」を参照してください。

  • GROUP BY句が使用されていない空の表で集計関数を計算すると、COUNTは0を返します。

  • 空のグループまたはグループ化された空の表(GROUP BYを使用)で集計関数を計算すると、COUNTは何も返しません。

  • 問合せでAnalyticClauseを使用しない場合、COUNTは集計関数として機能します。

  • DISTINCTAnalyticClauseを指定した場合は、QueryPartitionClauseのみを指定できます。OrderByClause およびWindowingClauseは指定できません。

従業員の数をカウントします。

Command> SELECT COUNT(*) "TOTAL EMP" FROM employees;
 
TOTAL EMP
< 107 >
1 row found.

個々のマネージャIDを重複しないように選択して、マネージャの数をカウントします。

Command> SELECT COUNT(DISTINCT manager_id) "Managers" FROM employees;
 
MANAGERS
< 18 >
1 row found.