id , userid , requestno, flg
1 , hoge@ , 1001, 却下
2 , uge@ , 1001, 未承認
3 , hoge@ , 1001, 承認
以下続く
idは連番、useridの個数は不定です
useridごとに最後(idが一番大きい)の承認結果をSQLでだしたいのですがどうすればよいでしょうか
上の例だと2と3のみ抽出したく。
SELECT * FROM sample_table a WHERE a.id = ( SELECT max(b.id) FROM sample_table b WHERE a.userid = b.userid ) ;
こんな感じでいかがでしょうか。
テーブル名は仮に「sample_table」としております。
(requestnoの意味が分からなかったため、意識しませんでした。)
ビンゴです。自己結合をつかうのですね。
SQL奥深いです。