Lead SQL

Lead SQL

A função Lead SQL permite acessar a próxima linha da linha atual em um deslocamento específico. Em suma, a função principal permite acessar a próxima linha a partir da atual. Ao especificar o valor do deslocamento, você pode acessar os próximos 1, 2, 3, etc., linhas do atual.

É o oposto da função Lag (), que permite acessar linhas anteriores.

Lead SQL ()

A sintaxe da função é como mostrado:

Lead (value_expression, deslocamento [, padrão])
SOBRE (
[Partição por partition_expression]
Ordem por Sort_expression [ASC | Descendência
);

A seguir, estão os argumentos suportados:

  1. value_expression - Especifica o valor de retorno da linha anterior. A expressão deve avaliar um único valor.
  2. desvio - Especifica quantas linhas avançadas da linha atual para acessar.
  3. padrão - Define o valor padrão se o deslocamento estiver fora do escopo da partição. Por padrão, o valor é definido como nulo.
  4. Partição por - Especifica como particionar os dados.
  5. Ordenar por - Define o formato do pedido para as linhas em cada partição.

Exemplo 1

Suponha que tenhamos uma tabela contendo informações de funcionários, como mostrado:

Para acessar o próximo nome do funcionário, podemos executar uma consulta como mostrado:

Selecione ID, Full_Name, Lead (Full_Name) sobre (
partição por categoria
Ordem por id ASC
) Como next_employee
De funcionários;

O código acima particionará os dados com base na categoria. Então buscará o próximo nome na partição usando a função principal.

A saída resultante é como mostrado:

Exemplo 2

Se não houver a próxima linha em uma coluna específica (fora do limite), a função definirá o valor como nulo, como mostrado acima.

Para definir um valor padrão para qualquer acesso fora do escopo, podemos fazer o seguinte:

Selecione ID, Full_Name, Lead (Full_Name, 1, 'N/A') sobre (
partição por categoria
Ordem por id ASC
) Como next_employee
De funcionários;

Definimos o valor padrão como 'n/a'. Isso deve substituir qualquer valor fora do limite, conforme mostrado na saída:

OBSERVAÇÃO: Definir o deslocamento para 1 é semelhante a não especificar nenhum valor.

Exemplo 3

Suponha que você queira acessar as próximas duas linhas da linha atual? Podemos fazer isso definindo o valor do deslocamento para 2.

Um exemplo de consulta é ilustrado abaixo:

Selecione ID, Full_Name, Lead (Full_Name, 2, 'N/A') sobre (
partição por categoria
Ordem por id ASC
) Como next_employee
De funcionários;

Esta consulta retornará as próximas duas linhas em cada partição, como mostrado abaixo: