Window frame-sats
Gäller för: Databricks SQL 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ånobExpr
. Ramen börjar på den första raden i partitionen somobExpr
är större eller lika medobExpr - 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 ärRANGE
,offset_start
är ett positivt literalvärde av en typ som kan läggas till iobExpr
. Ramen börjar på den första raden i partitionen somobExpr
är större eller lika medobExpr + 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 ärRANGE
,offset_stop
är ett positivt literalvärde av samma typ somoffset_start
. Ramen slutar på den sista raden utanför partitionen somobExpr
är mindre än eller lika medobExpr - offset_stop
på den aktuella raden.AKTUELL RAD
Anger att ramen stoppas på den aktuella raden.
offsetStop FOLLOWING
Om frame_mode är
ROWS
offset_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 ärRANGE
,offset_stop
är ett positivt literalvärde av samma typ somoffset_start
. Ramen slutar på den sista raden i partitionen somobExpr
är mindre än eller lika medobExpr + offset_stop
på den aktuella raden.OBUNDNA FÖLJANDE
Anger att fönsterramen stoppas i slutet av partitionen.