共用方式為


Window 框架子句

適用於:核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

指定聚合或分析 window 函式運作的 partition 內的滑動行子集。

語法

{ frame_mode frame_start |
  frame_mode BETWEEN frame_start AND frame_end } }

frame_mode
{ RANGE | ROWS }

frame_start
{ UNBOUNDED PRECEDING |
  offset_start PRECEDING |
  CURRENT ROW |
  offset_start FOLLOWING }

frame_end
{ offset_stop PRECEDING |
  CURRENT ROW |
  offset_stop FOLLOWING |
  UNBOUNDED FOLLOWING }

Parameters

  • frame_mode

    • ROWS

      如果指定,滑動 window 框架會以目前數據列前面或之後的數據列表示。

    • RANGE

      若有指定,window 函式必須透過使用單一的表達式 obExpr來指定一個 ORDER BY 子句

      然後,滑動 window 的界限會以目前數據列 obExpr 的 offset 表示。

  • frame_start

    相對於目前列的滑動 window 框的起始位置。

    • UNBOUNDED PRECEDING

      指定 window 框架從 partition開頭開始。

    • 上offset_start

      如果模式為 ROWSoffset_start 則為正整數常值數位,定義框架開始目前數據列之前的列數。

      如果模式為 RANGEoffset_start 則為 型別的正常值,可從 中減 obExpr去。 框架會從 partition 的第一個數據列開始,obExpr 大於或等於目前數據列 obExpr - offset_start

    • CURRENT ROW

      指定框架從目前數據列開始。

    • 下列offset_start

      如果模式為 ROWS,則為正整數常值數位, offset_start 定義框架開始到目前數據列的過去多少個數據列。 如果模式為 RANGEoffset_start 則為 型別的正常值,可以加入至 obExpr。 框架將從 partition 的第一行開始,其中在目前列中,obExpr 大於或等於 obExpr + offset_start

  • frame_stop

    相對於目前列的滑動 window 框的結尾。

    如果未指定,框架會在 CURRENT ROW 停止。 滑動 window 的結尾必須大於 window 框的開頭。

    • 上offset_start

      如果 frame_mode 為 ROWSoffset_stop 則為正整數常值數位,定義框架停止目前數據列之前的列數。 如果frame_mode為 RANGEoffset_stop 則為與 offset_start相同類型的正常值。 框架會在滿足目前數據列中 obExpr 小於或等於 obExpr - offset_stop 的 partition 的最後一列結束。

    • CURRENT ROW

      指定框架在目前數據列停止。

    • offsetStop following

      如果frame_mode為 ROWS,則為正整數常值數位, offset_stop 定義框架結束到目前數據列的數據列數目。 如果frame_mode為 RANGEoffset_stop 則為與 offset_start相同類型的正常值。 框架在 partition 的最後一行結束,該行中數據列 obExpr 小於或等於 obExpr + offset_stop

    • UNBOUNDED FOLLOWING

      指定window幀會在partition結尾停止。