{ AVG ( value_expression ) |
CORR ( value_expression_1, value_expression_2 ) |
COUNT ( { value_expression | * } ) |
COVAR_POP ( value_expression_1, value_expression_2 ) |
COVAR_SAMP ( value_expression_1, value_expression_2 ) |
MAX ( value_expression ) |
MIN ( value_expression ) |
REGR_AVGX ( dependent_variable_expression, independent_variable_expression ) |
REGR_AVGY ( dependent_variable_expression, independent_variable_expression ) |
REGR_COUNT ( dependent_variable_expression, independent_variable_expression ) |
REGR_INTERCEPT ( dependent_variable_expression, independent_variable_expression ) |
REGR_R2 ( dependent_variable_expression, independent_variable_expression ) |
REGR_SLOPE ( dependent_variable_expression, independent_variable_expression ) |
REGR_SXX ( dependent_variable_expression, independent_variable_expression ) |
REGR_SXY ( dependent_variable_expression, independent_variable_expression ) |
REGR_SYY ( dependent_variable_expression, independent_variable_expression ) |
STDDEV_POP ( value_expression ) |
STDDEV_SAMP ( value_expression ) |
VAR_POP ( value_expression ) |
VAR_SAMP ( value_expression )
} window
構文要素
- window
OVER ( [ partition_by_clause ] [ order_by_clause ] [ rows_clause ] )
- partition_by_clause
PARTITION BY column_reference [,...]
- column_referenceの中に、または列参照のカンマ区切りのリストで、関数の実行対象のグループを指定(複数も可)。
- PARTITION BYは任意指定です。PARTITION BY句またはRESET WHEN句を指定しない場合は、FROM句から送られる結果セット全体が、単一のグループまたはパーティションとなります。
- PARTITION BY句は、ウィンドウ パーティション句と呼ばれることもあります。
- order_by_clause
ORDER BY value_specification [,...] [ RESET WHEN condition ]
- value_expressionの中の、グループまたはパーティション内の値のソート順序。
- rows_clause
{ ROWS { { UNBOUNDED | value } PRECEDING | CURRENT ROW } |
ROWS BETWEEN { { UNBOUNDED | value } PRECEDING AND
{ { UNBOUNDED | value }
FOLLOWING | value PRECEDING | CURRENT ROW } |
CURRENT ROW AND { { UNBOUNDED | value } FOLLOWING } |
value FOLLOWING AND { UNBOUNDED | value } FOLLOWING
}
}
- value_specification
value_expression [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
- OVER
- 累積、グループ、または移動関数を計算する際に、値をグループ化、順序付け、および処理対象とする方法。
- 値は、PARTITION BY句およびRESET WHEN句に基づいてグループ化され、ORDER BY句に基づいてソートされ、パーティション内の集約グループに基づいて処理の対象とされます。
- RESET WHEN
- 順序付き分析関数の実行対象になるグループまたはパーティション。指定された条件の評価に応じて変化します。条件がTRUEと評価されると、指定されたウィンドウ パーティション内に新しい動的パーティションが作成されます。
- RESET WHENは任意指定です。RESET WHEN句またはPARTITION BY句を指定しない場合は、FROM句から送られる結果セット全体が単一のパーティションになります。
- RESET WHENを指定する場合は、ORDER BY句も指定する必要があります。
- condition
- 条件によるパーティション化を決めるために使用する条件式。RESET WHEN句の条件は、QUALIFY句の条件と適用範囲は同じですが、ネストされた順序付き分析関数はRESET WHEN句を指定できないという追加の制約があります。また、条件内のsubqueryとしてのSELECTは指定できません。
- 条件は、指定されたすべてのウィンドウ パーティション内の行に適用され、そのウィンドウ パーティション内にサブパーティションを作成します。
- ROWS
- パーティション内の集約グループの開始ポイント。集約グループの終了ポイントは現在行になります。
- 行Rの集約グループは、区分内の行の順序付けでのRに対して定義される行の集合です。
- ROWSまたはROWS BETWEEN句がない場合のデフォルトの集約グループは、ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWINGです。
- FIRST_VALUE/LAST_VALUEに対しROWS句がない場合のデフォルトは異なります。詳細は、FIRST_VALUE/LAST_VALUEを参照してください。
- ROWS BETWEEN
- 集約グループの開始と終了。これにより、現在行を基準にした行の集合を、パーティション内の行の順序付けで定義します。
- グループ開始として指定される行は、グループ終了として指定される行より前になければなりません。
- ROWSまたはROWS BETWEEN句がない場合のデフォルトの集約グループは、ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWINGです。
- UNBOUNDED PRECEDING
- 現在行より前にあるパーティション全体。
- UNBOUNDED FOLLOWING
- 現在行より後にあるパーティション全体。
- CURRENT ROW
- 現在行としての集約グループの開始または終了。
- value PRECEDING
- 現在行より前にある行の数。
- valueの値は、常に正の整数リテラルです。
- value PRECEDINGがグループの開始またはグループの終了になる場合、集約グループ内の行の最大数は4096です。
- value FOLLOWING
- 現在行より後にある行の数。
- valueの値は、常に正の整数リテラルです。
- value FOLLOWINGがグループの開始またはグループの終了になる場合、集約グループ内の行の最大数は4096です。
- ASC
- 結果が昇順でソートされます。
- ソート フィールドが文字列の場合、システムは現在のセッションの照合順序の定義に従って、昇順でソートします。
- デフォルトの順序はASCです。
- DESC
- 結果が降順でソートされます。
- ソート フィールドが文字列の場合、システムは現在のセッションの照合順序の定義に従って、降順でソートします。
- NULLS FIRST
- NULL結果が最初にリストされることを指定します。
- NULLS LAST
- NULL結果が最後にリストされることを指定します。