Selecione o registro mais recente por data em SQL

Selecione O Registro Mais Recente Por Data Em Sql



Ao trabalhar em um banco de dados SQL, você pode se deparar com uma instância em que precisa recuperar o registro mais recente de uma determinada tabela com base na data. Isso pode ser para paginação, gerenciamento de inventário, fins de monitoramento, etc.

Neste guia, orientaremos você pelos vários métodos e técnicas que podemos usar para selecionar o registro mais recente de uma tabela com base na data.

Dados de amostra

Para fins de demonstração, usamos o banco de dados de amostra Sakila que está disponível para versões MySQL e PostgreSQL.







Sinta-se à vontade para baixar e importar o banco de dados de amostra em seu servidor. Você também pode usar qualquer outro conjunto de dados conforme apropriado.



Exemplo 1: ORDENAR POR

O método mais básico e simples que podemos usar para recuperar o registro mais recente por data é usar uma cláusula SQL ORDER BY.



Podemos ordenar os registros em ordem decrescente com base no valor da data e então limitar o resultado a apenas uma linha.





Tomemos por exemplo a tabela de aluguel do banco de dados de amostra Sakila. Contém a coluna “data_de_aluguel” que indica a data em que o filme foi alugado.

Podemos usar isso para demonstrar como usar a cláusula ORDER BY para recuperar o registro mais recente da tabela.



SELECIONE *

A PARTIR DE aluguel

ORDEM POR data_aluguel DESC

LIMITE 1 ;

Neste caso, usamos a cláusula ORDER BY e passamos “data_aluguel” como coluna de destino. Também garantimos que o banco de dados ordene os registros em ordem decrescente.

Finalmente, também limitamos o número de registros de saída que devem retornar a linha mais recente da tabela.

Exemplo 2: Usando a função Max()

Você sabia que podemos usar a função max() em valores de data? Sim, podemos usar uma subconsulta SQL simples e a função max() em valores de data para recuperar o registro mais recente de uma determinada tabela.

Considere o seguinte exemplo:

SELECIONE *

A PARTIR DE aluguel

WHERE data_aluguel = (SELECT MAX(data_aluguel) FROM aluguel);

O uso da subconsulta encontra a data máxima de aluguel na tabela. Na consulta principal, devemos buscar os registros com “data_aluguel” igual à data máxima.

Exemplo 3: Funções de janela

Para bancos de dados que suportam as funções de janela, podemos usar uma subconsulta e a função row_number() para recuperar o registro mais recente da tabela da seguinte forma:

SELECIONE *

DE (

SELECIONE*,

ROW_NUMBER() ACIMA ( ORDEM POR data_aluguel DESC) AS rn

A PARTIR DE aluguel

) Subconsulta AS

ONDE rn = 1 ;

No exemplo dado, a subconsulta atribui um número de linha a cada linha com base na coluna “data_aluguel” em ordem decrescente usando a função de janela ROW_NUMBER().

A consulta externa seleciona então todas as colunas da subconsulta onde o número da linha é 1, selecionando efetivamente o(s) registro(s) de aluguel mais recente(s).

Conclusão

Neste post, exploramos os vários métodos e técnicas que podemos usar para buscar o registro mais recente com base em uma data.