Dela via


Fönsterramsklausul

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

Anger en glidande delmängd av rader i partitionen där funktionen för aggregerade eller analytiska fönster fungerar.

Syntax

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

Parametrar

  • frame_mode

    • RADER

      Om det anges uttrycks skjutfönsterramen i termer av rader som föregår eller följer den aktuella raden.

    • SORTIMENT

      Om det anges måste fönsterfunktionen ange en ORDER BY-sats med ett enda uttryck obExpr.

      Gränserna för skjutfönstret uttrycks sedan som en förskjutning från obExpr för den aktuella raden.

  • frame_start

    Startpositionen för skjutfönsterramen i förhållande till den aktuella raden.

    • OGRÄNSAD FÖREGÅENDE

      Anger att fönsterramen startar i början av partitionen.

    • offset_start FÖREGÅENDE

      Om läget är ROWS, så är offset_start det positiva heltal som definierar hur många rader före den aktuella raden som ramen startar.

      Om läget är RANGE, offset_start är ett positivt literalvärde av en typ som kan subtraheras från obExpr. Ramen börjar vid den första raden i partitionen där obExpr är större än eller lika med obExpr - offset_start på den aktuella raden.

    • AKTUELL RAD

      Anger att ramen börjar på den aktuella raden.

    • offset_start FÖLJANDE

      Om läget är ROWS, offset_start är det positiva integralliterala talet som definierar hur många rader som går förbi till den aktuella raden som ramen startar. Om läget är RANGE, offset_start är ett positivt literalvärde av en typ som kan läggas till i obExpr. Ramen börjar vid den första raden i partitionen där obExpr är större än eller lika med obExpr + offset_start på den aktuella raden.

  • frame_stop

    Slutet på skjutfönstrets ram i förhållande till den aktuella raden.

    Om inget annat anges stannar ramen på AKTUELL RAD. Slutet av skjutfönstret måste vara större än början av fönsterramen.

    • OFFSET_START FÖREGÅENDE

      Om frame_mode är ROWS, så är offset_stop det positiva heltalet som anger hur många rader före den aktuella raden som ramen slutar. Om frame_mode är RANGE, offset_stop är ett positivt literalvärde av samma typ som offset_start. Ramen slutar vid den sista raden av partitionen där obExpr är mindre än eller lika med obExpr - offset_stop på den aktuella raden.

    • AKTUELL RAD

      Specificerar att ramens stopp sker på den aktuella raden.

    • förskjutningStopp FÖLJANDE

      Om frame_mode är ROWS, är offset_stop det positiva heltal som definierar hur många rader bortom den aktuella raden som ramen slutar. Om frame_mode är RANGE, offset_stop är ett positivt literalvärde av samma typ som offset_start. Ramen slutar på den sista raden i partitionen för vilket obExpr är mindre än eller lika med obExpr + offset_stop vid den aktuella raden.

    • OBEGRÄNSAD FÖLJD

      Anger att fönsterramen slutar vid slutet av väggsektionen.