SQLite FIRST_VALUE

Resumo : neste tutorial, você aprenderá como usar a FIRST_VALUE()função SQLite para obter o valor da primeira linha em um quadro de janela especificado.

Introdução à FIRST_VALUE()função

É FIRST_VALUE()uma função de janela que permite obter o valor da primeira linha em um quadro de janela especificado.

O seguinte mostra a sintaxe da FIRST_VALUE()função:

FIRST_VALUE(expression) OVER (
    PARTITION BY expression1, expression2,...
    ORDER BY expression1 [ASC | DESC], expression2,..
    frame_clause
)
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

expression

é uma expressão avaliada em relação à primeira linha no quadro da janela. O expressiondeve retornar um único valor. Não é possível usar uma subconsulta ou outra função de janela no arquivo expression.

PARTITION BY

A PARTITION BYcláusula distribui linhas em partições por um ou mais critérios aos quais a FIRST_VALUE()função se aplica. A PARTITION BYcláusula é opcional. Se você omitir, a FIRST_VALUE()função tratará todo o conjunto de resultados como uma única partição.

ORDER BY

A ORDER BYcláusula especifica a ordem das linhas em cada partição à qual a FIRST_VALUE()função se aplica.

frame_clause

Define frame_clauseo quadro da partição atual. Para obter informações detalhadas sobre a cláusula frame, confira o tutorial da cláusula window frame .

FIRST_VALUE()Exemplos de funções SQLite

Usaremos a trackstabela do banco de dados de exemplo para a demonstração:

1) Usando FIRST_VALUE()função SQLite com ORDER BYexemplo de cláusula

A instrução a seguir usa a FIRST_VALUE()função para retornar o nome da faixa, o tamanho em bytes e a menor faixa do ID do álbum 1:

SELECT
    Name,
    printf('%,d',Bytes) Size,
    FIRST_VALUE(Name) OVER (
        ORDER BY Bytes
    ) AS SmallestTrack
FROM
    tracks 
WHERE
    AlbumId = 1;
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A imagem a seguir mostra a saída:

SQLite FIRST_VALUE com exemplo ORDER BY

Neste exemplo, a ORDER BYcláusula classificou as faixas por valores na Bytescoluna e a FIRST_VALUE()função escolheu a primeira faixa do conjunto de resultados.

Observe que usamos a printf()função para formatar os valores numéricos na coluna Bytes com vírgulas (,).

2) Usando SQLite FIRST_VALUE() com PARTITION BY exemplo de cláusula

O exemplo a seguir retorna todas as faixas de todos os álbuns. Também mostra a maior faixa de cada álbum:

SELECT
    AlbumId,
    Name,
    printf('%,d',Bytes) Size,
    FIRST_VALUE(Name) OVER (
        PARTITION BY AlbumId
        ORDER BY Bytes DESC
    ) AS LargestTrack
FROM
    tracks;
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está a saída parcial:

Exemplo SQLite FIRST_VALUE com PARTITION BY

Neste exemplo:

  • Primeiro, a PARTITION BYcláusula dividia as faixas por ID do álbum.
  • Em seguida, a ORDER BYcláusula classificou as faixas por tamanho, do maior ao menor.
  • Por fim, foi FIRST_VALUE()escolhida a faixa de maior tamanho de cada álbum.

Neste tutorial, você aprendeu como usar a FIRST_VALUE()função SQLite para obter o valor da primeira linha em um quadro de janela especificado.

Deixe um comentário

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