• 締切済み

これを抽出する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だけではなく、もっと沢山あります。 ご回答よろしくお願いします。

みんなの回答

  • Context
  • ベストアンサー率0% (0/1)
回答No.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 コレでいけるのではないでしょうか。 検証できる環境がないので自信はありませんが。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

dayがdate型であれば、ぶつうに・・・ select u_id,max(day) as day from f_table group by u_id とかでいけます。

関連するQ&A