SQL-vinduesfunktion - SQL window function

I SQL- databasens forespørgselssprog giver vinduesfunktioner adgang til data i posterne lige før og efter den aktuelle post. En vinduesfunktion definerer en ramme eller et vindue med rækker med en given længde omkring den aktuelle række og udfører en beregning på tværs af datasættet i vinduet.

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

I ovenstående tabel uddrager den næste forespørgsel værdierne for et vindue med en forudgående og en følgende række for hver række:

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

Resultatforespørgslen indeholder følgende værdier:

|     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)|

Referencer