質問: [postgresql]下記のような承認履歴テーブルがあります 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の意味が分からなかったため、意識しませんでした。)