プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
12cリリース1 (12.1)
B71278-13
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

集計ファンクション

集計ファンクションは、単一行に基づく結果行を戻すのではなく、行のグループに基づく単一結果行を戻します。集計ファンクションは、SELECT構文のリスト、ORDER BYおよびHAVING句に指定できます。集計ファンクションは、通常、SELECT文のGROUP BY句で使用され、この句の中で問合せ対象の表またはビューの行がグループ化されます。GROUP BY句を含む問合せでは、SELECT構文のリストの要素は、集計ファンクション、GROUP BY式、定数またはこれらのいずれかを含む式になります。Oracleは、集計ファンクションを行の各グループに適用し、各グループに単一の結果行を戻します。

GROUP BY句を指定しないと、SELECT構文のリスト内の集計ファンクションは、問合せ対象の表またはビューのすべての行に適用されます。HAVING句で集計ファンクションを使用して、グループを出力しないこともできます。このとき、出力は、問合せ対象の表またはビューの各行の値ではなく、集計ファンクションの結果に基づきます。


関連項目:

問合せおよび副問合せにおけるGROUP BY句およびHAVING句の詳細は、「GROUP BY句の使用例:」および「HAVING句」を参照してください。

単一の引数を指定する多くの集計ファンクションには、次の句があります。

たとえば、1、1、1、3の平均値はDISTINCTでは2となります。ALLでの平均値は1.5となります。どの句も指定しない場合、デフォルトでALLが使用されます。

集計ファンクションには、分析ファンクションの構文の一部であるwindowing_clauseを使用できるものがあります。この句の詳細は、windowing_clauseを参照してください。この項の最後に示す集計ファンクションのリストでは、windowing_clauseを使用できるファンクションにアスタリスク(*)が付いています。

COUNT(*)、GROUPING、およびGROUPING_IDを除くすべての集計ファンクションは、NULLを無視します。集計ファンクションに対する引数にNVLファンクションを使用して、NULLをある値で置き換えることができます。COUNTおよびREGR_COUNTはNULLを戻しません。数字または0(ゼロ)を戻します。その他の集計ファンクションでは、データ・セットに行がない場合、または集計ファンクションに対する引数としてNULLを持つ行のみがある場合はNULLを戻します。

集計ファンクションMINMAXSUMAVGCOUNTVARIANCEおよびSTDDEVの後に、KEEPキーワードを指定すると、FIRSTまたはLASTファンクションと組み合せて使用することができ、与えられたソート指定に対して、FIRSTまたはLASTとしてランク付けされた一連の行の一連の値を操作できます。詳細は、「FIRST」を参照してください。

集計ファンクションはネストできます。たとえば、次の例では、サンプル・スキーマhrのすべての部門における最高額の給与の平均を計算します。

SELECT AVG(MAX(salary))
  FROM employees
  GROUP BY department_id;

AVG(MAX(SALARY))
----------------
      10926.3333

この計算では、GROUP BY句(department_id)で定義されているグループごとの内部集計(MAX(salary))を評価し、その結果をもう一度集計しています。

次に示す集計ファンクションのリストでは、windowing_clauseを使用できるファンクションにはアスタリスク(*)が付いています。


APPROX_COUNT_DISTINCT
AVG
COLLECT
CORR
CORR_*
COUNT
COVAR_POP
COVAR_SAMP
CUME_DIST
DENSE_RANK
FIRST
GROUP_ID
GROUPING
GROUPING_ID
LAST
LISTAGG
MAX
MEDIAN
MIN
PERCENT_RANK
PERCENTILE_CONT
PERCENTILE_DISC
RANK
REGR_ (Linear Regression) Functions
STATS_BINOMIAL_TEST
STATS_CROSSTAB
STATS_F_TEST
STATS_KS_TEST
STATS_MODE
STATS_MW_TEST
STATS_ONE_WAY_ANOVA
STATS_T_TEST_*
STATS_WSR_TEST
STDDEV
STDDEV_POP
STDDEV_SAMP
SUM
SYS_OP_ZONE_ID
SYS_XMLAGG
VAR_POP
VAR_SAMP
VARIANCE
XMLAGG