SQL-fönsterfunktion - SQL window function

I SQL -databas frågespråket , fönsterfunktioner ger tillgång till uppgifter i registret rätt före och efter den aktuella posten. En fönsterfunktion definierar en ram eller ett fönster med rader med en viss längd runt den aktuella raden och utför en beräkning över uppsättningen av data i fönstret.

      NAME |
------------
      Aaron| <-- Preceding (unbounded)
     Andrew|
     Amelia|
      James|
       Jill|
     Johnny| <-- 1st preceding row
    Michael| <-- Current row
       Nick| <-- 1st following row
    Ophelia|
       Zach| <-- Following (unbounded)

I tabellen ovan extraherar nästa fråga värdena för ett fönster med en föregående och en följande rad för varje rad:

 SELECT
  LAG(name, 1) 
    OVER(ORDER BY name) "prev",
  name, 
  LEAD(name, 1) 
    OVER(ORDER BY name) "next"
 FROM people
 ORDER BY name

Resultatfrågan innehåller följande värden:

|     PREV |     NAME |     NEXT |
|----------|----------|----------|
|    (null)|     Aaron|    Andrew|
|     Aaron|    Andrew|    Amelia|
|    Andrew|    Amelia|     James|
|    Amelia|     James|      Jill|
|     James|      Jill|    Johnny|
|      Jill|    Johnny|   Michael|
|    Johnny|   Michael|      Nick|
|   Michael|      Nick|   Ophelia|
|      Nick|   Ophelia|      Zach|
|   Ophelia|      Zach|    (null)|

referenser