共用方式為


視窗框架條款

適用於:選取「是」Databricks SQL 選取「是」Databricks Runtime

指定彙總或分析視窗函數運作所在分區內資料列的滑動子集。

語法

{ 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 }

參數

  • frame_mode

    • ROWS

      如果指定,滑動視窗框架會以相對於當前行之前或之後的行數表示。

    • 範圍

      如果指定了視窗函數,則必須使用單一的ORDER BY表示式指定

      然後,滑動視窗的界限會以當前列的 obExpr 偏移量來表示。

  • frame_start

    相對於當前資料列的滑動視窗開始位置。

    • 無界先行

      指定視窗框架從分區的開頭開始。

    • 偏移_start 之前

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

      如果模式為 RANGE,則 offset_start 為一個可以從 obExpr 減去的型別中的正的常量值。 框架會從分區的第一行開始,其中 obExpr 在當前行大於或等於 obExpr - offset_start

    • 目前列

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

    • 從offset_start開始的部分

      如果模式為 ROWS,則 offset_start 是定義框架從目前列前推多少行開始的正整數文字值。 若模式為 RANGEoffset_start 為一個可以加至 obExpr 的正的字面值型別。 框架會從分區的第一行開始,其中 obExpr 在當前行大於或等於 obExpr + offset_start

  • frame_stop

    相對於當前資料列的滑動視窗框架結束。

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

    • 偏移_start 之前

      如果 frame_mode 為 ROWSoffset_stop 則為正整數常值數字,定義框架在當前列之前停止的列數。 如果 frame_mode 為 RANGEoffset_stop 則為與 offset_start 相同類型的正值常量。 框架結束於分區中的最後一列,其中 obExpr 小於或等於當前行的 obExpr - offset_stop

    • 目前列

      指定範圍在當前列停止。

    • offsetStop 後續

      如果 frame_mode 為 ROWS,則 offset_stop 為正整數常量,定義截至當前行之後結束的行數。 如果 frame_mode 為 RANGEoffset_stop 則為與 offset_start 相同類型的正值常量。 框架會在 obExpr 小於或等於當前行 obExpr + offset_stop 的最後一行的分割結束。

    • 無界限跟隨

      指定視窗框架終止於分割區的結尾。