まず、クラスごとの最低年齢を選択する必要があります:
select min(age) as age, class as class from t group by class
(注:クラスごとの最低年齢が必要だと想定しています。名前ごとの最低年齢が必要な場合は、class
を置き換えます。 name
を使用 クエリで...)
次に、結果をテーブルと結合して、それぞれの行を取得する必要があります。完全なSQLは次のようになります
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;
最適なパフォーマンスを得るには、age
class
と同様にインデックスが付けられます (またはname
、group by
で必要な方 式)。