"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 extraer la última fila de datos para cada ID en PostgreSQL?

¿Cómo extraer la última fila de datos para cada ID en PostgreSQL?

Publicado el 2025-04-12
Navegar:588

How to Extract the Last Row for Each ID in PostgreSQL?

extrayendo la última fila para cada id en postgresql

Considere un conjunto de datos con columnas nombradas id, fecha y otro_info. El objetivo es extraer la última información (fila) para cada identificación única.

para lograr esto en PostgreSQL, se usan comúnmente dos métodos:

Distintos en operador

Postgresql proporciona el operador distinto, lo que le permite especificar que solo se especifique que los valores distintos de una columna particular de una columna particular. En este caso, el operador se puede usar de la siguiente manera:

Seleccione distinto en (id) id, fecha, otro_info de The_Table Orden por id, date descr;
select distinct on (id) id, date, another_info
from the_table
order by id, date desc;
Esta consulta asegura que solo se devuelva la última instancia de cada identificación única, se ordene en orden descendente por fecha.

Window Functions

Alternativamente, puede usar las funciones de la ventana para lograr el mismo resultado. Una función de ventana le permite realizar cálculos o agregaciones en un conjunto dividido de filas. En este caso, se puede usar la siguiente consulta:

Seleccione ID, Fecha, otro_info de ( Seleccione ID, fecha, otro_info, row_number () Over (Partition por orden de identificación por fecha Desc) como RN de The_Table ) t donde rn = 1 orden por id;
select distinct on (id) id, date, another_info
from the_table
order by id, date desc;
Esta consulta usa la función row_number () para asignar un número secuencial a cada fila dentro de cada partición de ID. La cláusula Where filtra los resultados para incluir solo las filas con el valor RN más alto (es decir, la última fila para cada ID).

Ú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