Window Specificationの構文 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/tpt1555966086716.ditamap
dita:ditavalPath
ja-JP/tpt1555966086716.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage
{ 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結果が最後にリストされることを指定します。