質問: これを抽出するsqlを教えてください どういうsqlを書けばこれが実現出来るのか分からないので教えて下さい。 テーブル名 f_table というテーブルがあります。 このテーブルには、f_id,u_id,day(日付)という三つの列があり、下記のようにデータが入っているとします。 f_id u_id day 1 1 2007/3/8 2 2 2008/1/2 3 2 2008/1/10 4 1 2007/2/12 このf_tableから、各u_idで一番日付の新しいf_idを抽出する(この表の場合f_idの1と3が抽出される)にはどういうsqlで出来るのでしょうか? ※実際の表ではu_idに入っている数字の種類は1と2だけではなく、もっと沢山あります。 ご回答よろしくお願いします。
回答: f_idを取りたいなら、 select f_table.f_id from f_table,( select u_id,max(day) as day from f_table group by u_id) b_table where f_table.u_id = b_table.u_id and f_table.day = b_table.day コレでいけるのではないでしょうか。 検証できる環境がないので自信はありませんが。