Dela via


Översikt av fönsterfunktioner

Fönsterfunktioner fungerar på flera rader (poster) i en raduppsättning i taget. Till skillnad från aggregeringsfunktioner kräver fönsterfunktioner att raderna i raduppsättningen serialiseras (har en specifik ordning för dem). Fönsterfunktioner kan vara beroende av ordningen för att fastställa resultatet.

Fönsterfunktioner kan bara användas på serialiserade uppsättningar. Det enklaste sättet att serialisera en raduppsättning är att använda serialiseringsoperatorn. Den här operatorn "fryser" ordningen på rader på ett godtyckligt sätt. Om ordningen på serialiserade rader är semantiskt viktig använder du sorteringsoperatorn för att tvinga fram en viss ordning.

Serialiseringsprocessen har en icke-trivial kostnad associerad med den. Det kan till exempel förhindra frågeparallellitet i många scenarier. Använd därför inte serialisering i onödan. Om det behövs ordnar du om frågan för att utföra serialisering på minsta möjliga raduppsättning.

Serialiserad raduppsättning

En godtycklig raduppsättning (till exempel en tabell eller utdata från en tabelloperator) kan serialiseras på något av följande sätt:

  1. Genom att sortera raduppsättningen. Se nedan för en lista över operatorer som genererar sorterade raduppsättningar.
  2. Genom att använda serialiseringsoperatorn.

Många tabelloperatorer serialiserar utdata när indata redan serialiseras, även om operatorn inte själv garanterar att resultatet serialiseras. Den här egenskapen är till exempel garanterad för extend-operatorn, projektoperatorn och where-operatorn.

Operatorer som genererar serialiserade raduppsättningar genom sortering

Operatorer som bevarar egenskapen serialiserad raduppsättning