Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL Sélectionnez la ligne avec la valeur la plus basse dans la colonne

Vous devez d'abord sélectionner l'âge minimum par classe :

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

(Remarque :je suppose que vous voulez l'âge minimum par classe. Si vous voulez l'âge minimum par nom, remplacez alors class avec name dans les requêtes...)

Ensuite, vous devez joindre le résultat à votre table pour obtenir les lignes respectives. Le SQL complet serait

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;

Pour des performances optimales, assurez-vous que age est indexé ainsi que class (ou name , celui que vous voulez dans votre group by expression).