2017-09-08 4 views
-1

私のテーブルには、次のようになります。私はスキル列の各スキルの最大年齢を持つIDを見つけたい検索最大のすべての値の列から他の列に

MySQL table

。したがって、このテーブルの回答はCooking-> r1、Eating-> r2、Coding-> r3となります。

どうすればこの問題を解決できますか?

+0

サブスクリプションでGROUP BYを使用して、各スキルの最大有効期間を見つけることをお勧めします。その結果と結合する。 – jarlh

+0

@jarlhはい、GROUP BYはスキルと最大(年齢)を示しますが、私はmax(年齢)から対応するIDを求めます。 –

+0

私が言ったように、GROUP BYの結果であなたのテーブルに参加してください! – jarlh

答えて

2

サブスクリプションでGROUP BYを実行して、各スキルの最大経過時間を見つけます。 JOINとなります。

SELECT t.id, t.age, t.skills 
FROM tablename t 
join (select skills, max(age) as maxage 
     from tablename 
     GROUP BY skills) t2 
    on t.skills = t2.skills and t.age = t2.maxage 

注:ネクタイが含まれます。スキルの最大年齢が同じ2つのIDがある場合は両方が返されます。

+0

サンプルセットで動作しますが、ネクタイが存在する場合は... – xQbert

+0

もちろん結び付きます。あなたはそれらをしたくないですか? – jarlh

関連する問題