Dela via


Window frame-sats

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.

    • OBUNDNA FÖREGÅENDE

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

    • OFFSET_START FÖREGÅENDE

      Om läget är ROWS, offset_start är det positiva integralliterala talet 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 på den första raden i partitionen som obExpr är större 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 på den första raden i partitionen som obExpr är större 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 det inte anges stoppas 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, offset_stop är det positiva integralliterala talet som definierar hur många rader före den aktuella raden som ramen stoppas. Om frame_mode är RANGE, offset_stop är ett positivt literalvärde av samma typ som offset_start. Ramen slutar på den sista raden utanför partitionen som obExpr är mindre än eller lika med obExpr - offset_stop på den aktuella raden.

    • AKTUELL RAD

      Anger att ramen stoppas på den aktuella raden.

    • offsetStop FOLLOWING

      Om frame_mode är ROWSoffset_stop , är det positiva integralliterala talet som definierar hur många rader som går förbi till 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 som obExpr är mindre än eller lika med obExpr + offset_stop på den aktuella raden.

    • OBUNDNA FÖLJANDE

      Anger att fönsterramen stoppas i slutet av partitionen.