função de janela SQL - SQL window function

No SQL banco de dados linguagem de consulta , funções da janela permite o acesso a dados nos registros direita antes e após o registro atual. Uma funo de janela define uma moldura ou janela de linhas com um dado comprimento em torno da linha corrente, e executa um cálculo entre o conjunto de dados na janela.

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

Na tabela acima, a consulta seguinte extrai para cada linha dos valores de uma janela com uma anterior e uma fileira seguinte:

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

A consulta de resultados contém os seguintes valores:

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

Referências