Estruturação de janela
O quadro da janela ou agrupamento de agregação da janela define o limite dentro da partição de janela para a qual algum cálculo está sendo feito.
<window frame clause> ::= <window frame units>
<window frame extent> [ <window frame exclusion> ]
<window frame units> ::= ROWS | RANGE
<window frame extent> ::=
<window frame start> | <window frame between>
<window frame start> ::=
unbounded preceding | <unsigned value specification> preceding | current row
<window frame between> ::=
between <window frame bound 1> and <window frame bound 2>
<window frame bound 1> ::= <window frame bound>
<window frame bound 2> ::= <window frame bound>
<window frame bound> ::=
<window frame start>
| unbounded following
| <unsigned value specification> following
<window frame exclusion> ::=
exclude current row
| exclude group
| exclude ties
| exclude no others
- Use linhas para as linhas físicas
Apenas se os dados de entrada forem densos; ou seja, não há diferenças na sequência de valores de coluna de ordenação, mas não muito densos, como tendo múltiplas linhas para um mês. Nesse caso, é possível ter um empate, o que pode resultar em resultados não determinísticas. É possível ter mais de uma coluna de ordenação, e você não fica limitado a uma fórmula simples para calcular os valores de coluna de ordenação anterior e posterior.
- Use intervalo de linhas lógicas
Somente quando houver uma fórmula simples que possa ser usada para incluir ou subtrair um valor da coluna de ordenação. A coluna de ordem deve ser um tipo de dado numérico, data/hora ou intervalo, pois esses tipos de dados são os únicos tipos para os quais adição e subtração são definidas. Embora não seja possível usar mais de uma coluna de ordenação, suas consultas não são limitadas a dados densos e os empates não levam a não determinismo.
- Quadros limitados
- O limite de quadro é determinado por um número específico ou linhas ou por um intervalo de valores.
- Quadros sem limites
- O quadro se estende até o limite da partição na direção, ou seja, ele pode ser sem limites precedendo a linha atual, sem limites seguindo a linha atual ou ambos.
Se você não especificar estruturação de janela e ordenação de janela, o efeito será como se você tivesse especificado entre sem limites precedendo ou sem limites seguindo.
Se você não especificar uma estruturação de janela, mas especificar uma ordenação de janela, a estruturação de janela implícita será o intervalo sem limites precedente.