siempre crei que la sentencia "select" devolvia un conjunto no ordenado de registros. el orden de este conjunto puede variar dependiendo de la version de la base de datos o de la base de datos.
por ejemplo, si se te ocurriese migrar esta base de datos a otra como maxDB, por ejemplo, nadie te asegura que el orden vaya a ser el mismo.
sin embargo en esta sentencia si tiene sentido hablar del ultimo elemento:
Código:
select * from nombres group by categoria ORDER BY id
ya que en este caso se trata de un conjunto ordenados de registros.
si quieres obtener el ultimo:
Código:
select * from nombres group by categoria ORDER BY id DESC
y te quedas con el primero.