Najpierw musisz wybrać minimalny wiek dla klasy:
select min(age) as age, class as class from t group by class
(Uwaga:zakładam, że chcesz mieć minimalny wiek na klasę. Chcę mieć minimalny wiek na imię, a następnie zastąp class
z name
w zapytaniach ...)
Następnie musisz połączyć wynik z tabelą, aby uzyskać odpowiednie wiersze.Pełny kod SQL byłby
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;
Aby uzyskać optymalną wydajność, upewnij się, że age
jest indeksowany tak samo jak class
(lub name
, cokolwiek chcesz w swojej group by
wyrażenie).