Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Mostrar ultimo registro de cada grupo sql

Vamos a ver como mostrar el ultimo registro de cada grupo de una consulta sql es decir usaremos un GROUP BY para no repetir registros y ademas mostraremos el último registro de ese grupo.

Ejemplo de un GROUP BY normal:
1    A       A_data_1
2    A       A_data_2
3    A       A_data_3
4    B       B_data_1
5    B       B_data_2
6    C       C_data_1
Como vemos estamos ordenando de manera eficiente pero repetimos los registros A y B, ahora vemos como solucionar esto:
//Con esta consulta obtenemos el último articulo de cada autor sin repetir el autor en la consulta
$query_SacarPost = "SELECT * FROM articulos WHERE id IN (SELECT MAX(id) FROM articulos GROUP BY autor) ORDER BY id DESC";
Ahora obtenemos:
3    A       A_data_3
5    B       B_data_2
6    C       C_data_1
Para cualquier duda deja tu comentario..
5
Puntos
37611
Visitas
1
Resp
Por alber hace 108 meses
Administrador
Respuesta #1
Para los casos en los que no quiere devolver el último registro basado en su MAX(id), se puede utilizar esta consulta.

SELECT * FROM
( SELECT * ROW_NUMBER() OVER(PARTITION BY t1.autor ORDER BY t1.id desc) contador
FROM articulos t1
) q1
WHERE q1.contador = 1

Basándose en el Order By podemos devolver cualquier registro que nos interese del grupo.
0
Puntos
Por Jcastro hace 50 meses
Principiante
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate