mostrar ultimos registros de cada categoria ( MySQL )

CesarS
18 de Junio del 2005
Hola

Necesito una manito, yo se que es sencillo pero no le atino

Tengo una tabla "nombres" con los campos : "id", "nombres", "apellidos", "categoria"

con la siguiente sentencia :

SELECT * FROM nombres GROUP BY categoria;

los muestra muy bien, sino no fuera que muestra el primer registro de cada categoria y lo que se necesita es que muestre es el ultimo registro.

tengo la BD con los siguientes datos:

"id", "nombres", "apellidos", "categoria"
1, Pepe, Perez, 8
2, Juan, Garcia, 8
3, Cesar, Sanchez, 5

Actualmente con la siguiente sentencia :

SELECT * FROM nombres GROUP BY categoria;

me muestra :

1, Pepe, Perez, 8
3, Cesar, Sanchez, 5

y el objetivo es obtener un resultado como :

2, Juan, Garcia, 8
3, Cesar, Sanchez, 5

como ves, el ultimo (el que tiene el mayor "id") de cada categoria es el q debe mostrarse.

Lo he estado intentando tambien (usando HAVING y ORDER BY), y nada

Saludos

maka
18 de Junio del 2005
pon al final de la consulta DESC, es decir:

SELECT * FROM nombres GROUP BY categoria DESC;

maka
18 de Junio del 2005
espera que no lo leí bien, sería :

SELECT * FROM nombres GROUP BY categoria ORDER BY id DESC;

creo que es así, aunque estoy empezando...