funzione finestra SQL - SQL window function

In SQL database di linguaggio di query , funzioni finestra consentono l'accesso ai dati nei registri a destra prima e dopo il record corrente. Una funzione finestra definisce una cornice o finestra di righe con una data lunghezza attorno alla riga corrente, ed esegue un calcolo di tutti i set di dati nella finestra.

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

Nella tabella di cui sopra, la query successiva estrae per ogni riga i valori di una finestra con una precedente e una riga seguente:

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

La query risultato contiene i seguenti 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)|

Riferimenti