"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo obtener el último valor de cada grupo basado en la marca de tiempo en Oracle SQL?

¿Cómo obtener el último valor de cada grupo basado en la marca de tiempo en Oracle SQL?

Publicado el 2025-04-13
Navegar:784

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

extrayendo las entradas más recientes para cada grupo en Oracle SQL

Este tutorial demuestra una tarea de base de datos común: recuperar el registro más reciente para cada grupo basado en una marca de tiempo. Usaremos una tabla que contiene ID, marcas de tiempo y cantidades como ejemplo.

Desafío:

dada una tabla con id, columnas de Timestamp ("Date") y cantidad ("Cantidad"), ¿Cómo seleccionamos eficientemente la última cantidad (y su marca de tiempo asociada) para cada identificación única?

Solución:

Esto se puede lograr usando el siguiente enfoque:

  1. Ranking por timestamp: asignar un rango a cada fila dentro de cada grupo de identificación, ordenado por la marca de tiempo en orden descendente.
  2. Selección de rangos superiores: Filtro los resultados para incluir solo las filas con el rango más alto para cada ID. Estas filas representan las últimas entradas.

La siguiente consulta de Oracle SQL implementa esta solución:

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;

extendiendo la consulta:

Esta consulta básica se puede adaptar para satisfacer las necesidades más complejas:

  • Filtrado basado en el tiempo: Agregar una cláusula a la consulta interna para restringir los resultados a un período de tiempo específico.
  • unido con otras tablas: Integrar datos de tablas adicionales uniendo en la columna id . Por ejemplo, puede unirse a una tabla que contiene ID y nombre para incluir nombres en la salida.
Este método proporciona una forma robusta y eficiente de recuperar los últimos valores por grupo en función de una marca de tiempo en Oracle SQL, aplicable a varias tareas de análisis y manipulación de datos.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3