"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como obter o valor mais recente de cada grupo com base no registro de data e hora no Oracle SQL?

Como obter o valor mais recente de cada grupo com base no registro de data e hora no Oracle SQL?

Postado em 2025-04-13
Navegar:761

How to Retrieve the Latest Value for Each Group Based on Timestamp in Oracle SQL?

extraindo as entradas mais recentes para cada grupo no Oracle SQL

Este tutorial demonstra uma tarefa comum de banco de dados: recuperando o registro mais recente para cada grupo com base em um registro de data e hora. Usaremos uma tabela contendo IDs, registros de data e hora e quantidades como exemplo.

Desafio:

dada uma tabela com ID, registro de data e hora ("Data") e Quantidade ("Quantidade"), como selecionamos com eficiência a quantidade mais recente (e seu registro de data e hora associado) para cada ID exclusivo?

Solução:

isso pode ser alcançado usando a seguinte abordagem:

  1. Classificação por Timestamp: Atribua uma classificação a cada linha dentro de cada grupo de identificação, ordenado pelo timestamp na ordem descendente.
  2. Selecionando as principais classificações: filtre os resultados para incluir apenas as linhas com a classificação mais alta para cada id. Essas linhas representam as últimas entradas.

O seguinte Oracle SQL Query implementa esta solução:

SELECT x.id, x."date", x.quantity
FROM (
    SELECT
        id,
        "date",
        RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk,
        quantity
    FROM qtys
) x
WHERE x.rnk = 1;

estendendo a consulta:

Esta consulta básica pode ser adaptada para atender às necessidades mais complexas:

  • filtragem baseada no tempo: Adicione uma cláusula onde à consulta interna para restringir os resultados a um período de tempo específico.
  • juntando -se a outras tabelas: integrar dados de tabelas adicionais, juntando -se no id colun. Por exemplo, você pode participar de uma tabela contendo ID e nome para incluir nomes na saída.

Este método fornece uma maneira robusta e eficiente de recuperar os valores mais recentes por grupo com base em um registro de data e hora no Oracle SQL, aplicável a várias tarefas de análise de dados e manipulação.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3