Funcția fereastră SQL - SQL window function

În limbajul de interogare a bazei de date SQL , funcțiile ferestrei permit accesul la datele din înregistrări chiar înainte și după înregistrarea curentă. O funcție de fereastră definește un cadru sau o fereastră de rânduri cu o lungime dată în jurul rândului curent și efectuează un calcul pe setul de date din fereastră.

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

În tabelul de mai sus, următoarea interogare extrage pentru fiecare rând valorile unei ferestre cu un rând precedent și unul următor:

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

Interogarea de rezultate conține următoarele valori:

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

Referințe