Funções da janela SQLite

Uma função de janela SQLite executa um cálculo em um conjunto de linhas relacionadas à linha atual. Ao contrário de uma  função agregada , uma função de janela não faz com que as linhas sejam agrupadas em uma única linha de resultado. uma função de janela retém as identidades das linhas. Nos bastidores, as funções de janela podem acessar mais do que apenas a linha atual do resultado da consulta.

A imagem a seguir ilustra as diferenças entre funções agregadas e funções de janela:

Função de janela SQLite vs função agregada

As funções da janela são divididas em três categorias: funções da janela de valor, funções da janela de classificação e funções da janela agregada, conforme mostrado na imagem a seguir:

Funções da janela SQLite

As funções de janela também são conhecidas como funções analíticas. A tabela a seguir mostra todas as funções de janela suportadas pelo SQLite:

Nome Descrição
CUME_DIST Calcule a distribuição cumulativa de um valor em um conjunto ordenado de valores.
DENSE_RANK Calcule a classificação de uma linha em um conjunto ordenado de linhas sem lacunas nos valores de classificação.
FIRST_VALUE Obtenha o valor da primeira linha em um quadro de janela especificado.
LAG Fornece acesso a uma linha em um determinado deslocamento físico anterior à linha atual.
LAST_VALUE Obtenha o valor da última linha em um quadro de janela especificado.
LIDERAR Fornece acesso a uma linha em um determinado deslocamento físico que segue a linha atual.
NTH_VALUE Retorna o valor de uma expressão avaliada em relação à linha N do quadro da janela no conjunto de resultados.
NTIL Divida um conjunto de resultados em vários grupos da maneira mais uniforme possível e atribua um número de grupo a cada linha.
PERCENT_RANK Calcule a classificação percentual de cada linha em um conjunto ordenado de linhas.
CLASSIFICAÇÃO Atribua uma classificação a cada linha na partição do conjunto de resultados.
ROW_NUMBER Atribua um número inteiro sequencial começando de um para cada linha na partição atual.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *