sql >> Base de Datos >  >> RDS >> Mysql

MySQL Seleccione la fila con el valor más bajo en la columna

Primero tienes que seleccionar la edad mínima por clase:

select min(age) as age, class as class from t group by class

(Nota:supongo que desea la edad mínima por clase. Si desea la edad mínima por nombre, luego reemplace class con name en las consultas...)

Luego, debe unir el resultado con su tabla para obtener las filas respectivas. El SQL completo sería

select t.* from t 
inner join
( 
  select min(age) as age, class as class from t group by class
) min_ages on t.age = min_ages.age and t.class = min_ages.class;

Para un rendimiento óptimo, asegúrese de que age está indexado así como class (o name , lo que quieras en tu group by expresión).