Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Wählen Sie die Zeile mit dem niedrigsten Wert in der Spalte aus

Sie müssen zuerst das Mindestalter pro Klasse auswählen:

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

(Hinweis:Ich nehme an, Sie möchten das Mindestalter pro Klasse. Wenn Sie das Mindestalter pro Name möchten, ersetzen Sie class mit name in den Abfragen ...)

Dann müssen Sie das Ergebnis mit Ihrer Tabelle verknüpfen, um die entsprechenden Zeilen zu erhalten. Die vollständige SQL wäre

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;

Stellen Sie für eine optimale Leistung sicher, dass age wird ebenso indiziert wie class (oder name , was auch immer Sie in Ihrer group by möchten Ausdruck).