AVG
説明
AVG
"" は、行をグループに分割し、フィールドで行を並べ替え、グループ内の有効なすべての数値の平均を返すウィンドウ集計関数です。グループ内のすべての値を合計し、有効な (NOT NULL) 行数で除算します。使用できます AVG
移動平均を計算するため。次の基準
PARTITION BY
句は、入力行のセットをグループに分割するために使用するフィールドを決定します。次の基準 ORDER BY
句は、パーティション内の行の順序を決定します。Workday は、分割フィールドに従って入力行をグループに分割し、順序付けフィールドに従って行を並べ替え、各グループについて集計式 (この関数の平均) を計算します。
構文
whereAVG(input_field)OVER(PARTITION BYpartitioning_field[,partitioning_field]ORDER BYordering_field[ASC | DESC] [,ordering_field[ASC | DESC]]RANGEBETWEENvaluePRECEDINGANDCURRENT ROW|ROWSwin_boundary|BETWEENwin_boundaryANDwin_boundary)win_boundarycan be:UNBOUNDED PRECEDINGvaluePRECEDINGUNBOUNDED FOLLOWINGvalueFOLLOWINGCURRENT ROW
戻り値
型の値を返します
NUMERIC
または DOUBLE
input_field
のタイプに応じて決まります。入力パラメータ
- input_field
- 必須のコンテンツ。集計関数を実行するフィールド。任意の数値フィールドまたは通貨フィールドを使用できます。
- OVER()
- 必須のコンテンツ。OVER次の範囲内で使用してください:AVG式
- PARTITION BYdepartment_field
- 必須のコンテンツ。使用先PARTITION BY句: 入力行のグループを分割するために使用する 1 つ以上のフィールドを指定します。"通貨" を除く任意のフィールド タイプを指定できます。例: "月" フィールドを分割フィールドとして指定すると、"月" の値が同じすべてのレコードが 1 つの分割にグループ化されます。
- ORDER BYordering_field
- 必須のコンテンツ。使用先ORDER BY句。各分割内の指定されたフィールドの値を使用して、分割内の入力行を並べ替える方法を指定します。"通貨" を除く任意のフィールド タイプを指定できます。ただし、"" フィールドを使用する場合は、"整数" や "数値" などの数値フィールド タイプを使用する必要があります。RANGE句。次の操作ができます。DESCまたはASC各順序フィールドを、降順 (値が高い順、NULL が最後になる) または昇順 (値が高い順、NULL が最初) でソートするキーワード。順序フィールドのソート順序を指定しない場合、行は自動的に昇順でソートされます。
- 行 |範囲
- 必須のコンテンツ。次の基準ROWSおよびRANGE句は、ウィンドウ フレームを指定して、分割内の特定の行数 (現在の行を基準とする) を定義します。ウィンドウの枠線は、ウィンドウの境界と呼ばれる、分割内の開始点と終了点を指定して定義します。ウィンドウ フレームは、各分割で、集計式 (この関数の平均) を計算する入力行のセットです。ウィンドウ フレームには、分割の 1 行、複数行、またはすべての行を含めることができます。両方ROWSおよびRANGE現在の行を基準とする行の範囲を指定しますが、RANGE値に対する論理演算子 (論理関連付け)ROWSは、データセットの行に対して物理的に演算されます (物理的な関連付け)。RANGEは、現在の値を基準にして、指定された範囲内に値を持つ行を含めるようにウィンドウ フレームを制限します。ROWSは、現在の行の物理的に次の行を含む行をウィンドウ フレームに制限します。用途RANGE過去 3 か月または年初から現在までなど、絶対ウィンドウの境界を定義します。使用する場合RANGE()ORDER BY句のフィールド型には、整数、数値などの数値タイプを使用する必要があります。例: その年の月数 (値は 1 ~ 12) を表す MonthNum という整数フィールドがあるとします。過去 3 か月間のすべての値を指定する場合、"MonthNum" で並べ替え、以下を使用します。RANGE BETWEEN 2 PRECEDING AND CURRENT ROW。この RANGE 句には、当月と前 2 か月が含まれ、合計が 3 か月になります。を使用してウィンドウ関数を含むデータセットをパブリッシュする場合、RANGE- ウィンドウの行数は 1000 以下にしてください。特定のウィンドウが 1000 行を超えると、パブリッシュ ジョブが失敗します。
- Win_boundary
- 必須のコンテンツ。ウィンドウの境界は、ウィンドウ フレームの開始点と終了点を定義します。ウィンドウの境界は現在の行を基準としています。APRECEDING句は、現在の行よりも低いウィンドウ境界を定義します (現在の行の前に含める行の数)。次の基準FOLLOWING句は、現在の行 (現在の行の後に含める行の数) より大きいウィンドウ境界を定義します。ウィンドウの境界を 1 つだけ指定した場合、現在の行がウィンドウ フレームのもう一方の境界として使用されます (式の構文に応じて上限または下限のいずれかになります)。次の基準UNBOUNDEDキーワードには、指定した方向のすべての行が含まれます。ウィンドウ フレームの開始と終了の両方を指定する必要がある場合は、以下を使用します。BETWEENおよびANDキーワード。特定の行数を指定する場合、値は100 以下である必要があります。例:ROWS 2 PRECEDINGは、ウィンドウのサイズが 3 行で、直近の 2 行から現在の行までの 2 行を開始し、現在の行を含むことを意味します。例:ROWS UNBOUNDED FOLLOWINGは、ウィンドウが現在の行から開始し、現在の行と現在の行より後にあるすべての行を含むことを意味します。
例
各社員の移動平均 (移動平均または実行平均) 売上を計算できます。
AVG([Sales]) OVER( PARTITION BY [Employee] ORDER BY [SalesDate] DESC ROWS UNBOUNDED PRECEDING)
ORDER BY 句のフィールドに関係なく、分割内のすべての行の全体平均売上を計算できます。
AVG([Sales]) OVER( PARTITION BY [Employee] ORDER BY [SalesDate] DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
以下のように、12 か月間の平均を計算できます。
AVG([fieldA]) OVER( PARTITION BY [fieldB] ORDER BY [Month] RANGE 11 PRECEDING)
次の基準
Month
フィールドには、整数または数値などの数値タイプを指定してください。以下のように前年の年初来の平均を計算できます。
AVG([fieldA]) OVER( PARTITION BY [fieldB] ORDER BY [Year] RANGE 1 PRECEDING)
次の基準
Year
フィールドには、整数または数値などの数値タイプを指定してください。