Clause de cadre de fenêtre

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Spécifie un sous-ensemble coulissant de lignes dans la partition, sur lequel opère la fonction de fenêtre d’agrégation ou analytique.

Syntaxe

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

Paramètres

  • frame_mode

    • ROWS

      Si spécifié, le cadre de fenêtre coulissante est exprimé en termes de lignes qui précèdent ou suivent la ligne active.

    • RANGE

      Si spécifié, la fonction de fenêtre doit spécifier une clause ORDER BY avec une expression obExpr unique.

      Les limites de la fenêtre coulissante sont ensuite exprimées en tant que décalage par rapport à obExpr pour la ligne active.

  • frame_start

    Position de début du cadre de fenêtre coulissante par rapport à la ligne active.

    • UNBOUNDED PRECEDING

      Spécifie que le cadre de fenêtre commence au début de la partition.

    • offset_start PRECEDING

      Si le mode est ROWS, offset_start est le nombre littéral intégral positif qui définit le nombre de lignes avant la ligne active où le cadre commence.

      Si le mode est RANGE, offset_start est une valeur littérale positive d’un type qui peut être soustrait de obExpr. Le cadre commence à la première ligne de la partition pour laquelle la valeur obExpr est supérieure ou égale à obExpr - offset_start au niveau de la ligne actuelle.

    • CURRENT ROW

      Spécifie que le cadre commence à la ligne active.

    • offset_start FOLLOWING

      Si le mode est ROWS, offset_start est le nombre littéral intégral positif qui définit le nombre de lignes après la ligne active où le cadre commence. Si le mode est RANGE, offset_start est une valeur littérale positive d’un type qui peut être additionné à obExpr. Le cadre commence à la première ligne de la partition pour laquelle la valeur obExpr est supérieure ou égale à obExpr + offset_start au niveau de la ligne actuelle.

  • frame_stop

    Position de fin du cadre de fenêtre coulissante par rapport à la ligne active.

    Si elle n’est pas spécifiée, le cadre s’arrête à la ligne active (CURRENT ROW). La fin de la fenêtre coulissante doit être supérieure à son début.

    • offset_start PRECEDING

      Si frame_mode est ROWS, offset_stop est le nombre littéral intégral positif qui définit le nombre de lignes avant la ligne active où le cadre s’arrête. Si frame_mode est RANGE , offset_stop est une valeur littérale positive du même type que offset_start. Le cadre finit à la dernière ligne de la partition pour laquelle la valeur obExpr est inférieure ou égale à obExpr - offset_stop au niveau de la ligne active.

    • CURRENT ROW

      Spécifie que le cadre s’arrête à la ligne active.

    • offsetStop FOLLOWING

      Si frame_mode est ROWS, offset_stop est le nombre littéral intégral positif qui définit le nombre de lignes après la ligne active où le cadre finit. Si frame_mode est RANGE , offset_stop est une valeur littérale positive du même type que offset_start. Le cadre finit à la dernière ligne de la partition pour laquelle la valeur obExpr est inférieure ou égale à obExpr + offset_stop au niveau de la ligne active.

    • UNBOUNDED FOLLOWING

      Spécifie que le cadre de fenêtre s’arrête à la fin de la partition.