I en tidligere artikkel jeg dekket bruk av RADER FØR og ETTER i over punkt. For dette eksempelet jeg kommer til å bruke samme database og tabeller som jeg laget i forrige eksempel for å vise RADER UBEGRENSET både FORUT for og ETTER.,

En av de nye funksjonene som er tilgjengelige i TSQL i SQL Server-2012 er det RADER UBEGRENSET FOREGÅENDE og RADER UBEGRENSET FØLGENDE alternativer. Den UBEGRENSEDE alternativet er tilgjengelig når du bruker FØR og ETTER valg. Her er hvordan de fungerer…

RADER UBEGRENSET FOREGÅENDE

-- ROWS UNBOUNDED PRECEDINGselect Year, DepartmentID, Revenue, min(Revenue) OVER (PARTITION by DepartmentID ORDER BY ROWS UNBOUNDED PRECEDING) as MinRevenueToDatefrom REVENUEorder by departmentID, year;

I dette eksempelet MinRevenueToDate viser den laveste inntekt for denne raden, og alle tidligere rader sortert etter dato i gjeldende avdeling-id.

Du kan se at rad 1 angir MinRevenueToDate å 10030, og det endres ikke før rad 7 med en lavere inntekt året.,

Deretter rad 16 starter over til en ny avdeling med lavest kjører inntekter til dato. Deretter rad 21 tilbakestilles til et lavere inntekter nummer.

RADER UBEGRENSET FØLGENDE

Nå for eksempel på UBEGRENSET FØLGENDE:

-- ROWS UNBOUNDED FOLLOWINGselect Year, DepartmentID, Revenue, min(Revenue) OVER (PARTITION by DepartmentID ORDER BY ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) as MinRevenueBeyondfrom REVENUEorder by departmentID, year;

Der kan du se at min(Inntekt) er beregnet over alle rader fra den aktuelle raden til slutten av settet partisjonert av departmentID.,

Den UBEGRENSEDE alternativet er veldig nyttig for å bestemme en beregning fra begynnelsen av et sett til den aktuelle raden, eller fra den aktuelle raden til slutten av et sett eller en gruppe.

husk at denne funksjonen ble introdusert i SQL Server-2012, og er ikke tilgjengelige i tidligere versjoner.

Related Links

  • SQL-Spørring Trening
  • CTE Data Personsøker
  • OVER Punkt med RADER og OMRÅDE