COUNT
構文
関連項目:
構文、セマンティクスおよび制限事項の詳細は、分析ファンクションを参照してください。
目的
COUNT
は、問合せによって戻された行の数を戻します。これは、集計ファンクションまたは分析ファンクションとして使用できます。
DISTINCT
を指定する場合は、analytic_clause
のquery_partition_clause
のみを指定できます。order_by_clause
およびwindowing_clause
は指定できません。
expr
を指定すると、COUNT
はexpr
がNULLでない行数を戻します。expr
のすべての行を数えるか、または異なる値のみを数えることができます。
アスタリスク(*)を指定すると、このファンクションは重複値およびNULL値を含むすべての行を戻します。COUNT
はNULLを戻しません。
ノート:
大量のデータに対してCOUNT
(DISTINCT
expr
)
操作を実行する前に、次のいずれかのメソッドを使用して、正確な結果よりも速くおおよその結果を取得することを検討します。
-
COUNT
(DISTINCT
expr
)
ファンクションを使用する前に、APPROX_FOR_COUNT_DISTINCT
初期化パラメータをtrueに設定します。このパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。 -
COUNT
(DISTINCT
expr
)
ファンクションではなく、APPROX_COUNT_DISTINCT
ファンクションを使用します。「APPROX_COUNT_DISTINCT」を参照してください。
関連項目:
-
DISTINCT
句の文字値を比較するためにCOUNT
で使用される照合を定義する照合決定ルールは、『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Cを参照してください。
集計の例
次の例では、COUNT
を集計ファンクションとして使用します。
SELECT COUNT(*) "Total" FROM employees; Total ---------- 107 SELECT COUNT(*) "Allstars" FROM employees WHERE commission_pct > 0; Allstars --------- 35 SELECT COUNT(commission_pct) "Count" FROM employees; Count ---------- 35 SELECT COUNT(DISTINCT manager_id) "Managers" FROM employees; Managers ---------- 18
分析の例
次の例では、employees
表の各従業員について、その従業員の給与より50ドル少ない金額から150ドル多い金額の範囲の給与を得ている従業員の数を計算します。
SELECT last_name, salary, COUNT(*) OVER (ORDER BY salary RANGE BETWEEN 50 PRECEDING AND 150 FOLLOWING) AS mov_count FROM employees ORDER BY salary, last_name; LAST_NAME SALARY MOV_COUNT ------------------------- ---------- ---------- Olson 2100 3 Markle 2200 2 Philtanker 2200 2 Gee 2400 8 Landry 2400 8 Colmenares 2500 10 Marlow 2500 10 Patel 2500 10 . . .