[postgresql]下記のような承認履歴テーブルがあります

id , userid , requestno, flg
1 , hoge@ , 1001, 却下
2 , uge@ , 1001, 未承認
3 , hoge@ , 1001, 承認
以下続く

idは連番、useridの個数は不定です
useridごとに最後(idが一番大きい)の承認結果をSQLでだしたいのですがどうすればよいでしょうか
上の例だと2と3のみ抽出したく。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/09/12 20:30:37
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:bonlife No.1

回答回数421ベストアンサー獲得回数75

ポイント60pt
SELECT   *
FROM     sample_table a
WHERE    a.id = ( SELECT max(b.id)
                  FROM   sample_table b
                  WHERE  a.userid = b.userid )
;

こんな感じでいかがでしょうか。

テーブル名は仮に「sample_table」としております。

(requestnoの意味が分からなかったため、意識しませんでした。)

id:piro_yamagoo

ビンゴです。自己結合をつかうのですね。

SQL奥深いです。

2006/09/12 20:30:05

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません