即時の免責事項: SQL を本格的に始めてから数年が経ち、最近戻ってきました。
与えられたテーブル:
logical_id, instance_id, node_id, state, time_stamp
1, 1, a, starting, 1300003234
2, 1, a, up, 1300003235
**3, 1, b, starting, 1300003237**
4, 1, a, completed, 1300003239
5, 1, a, shutdown, 1300003240
特定の instance_id (例: 1) が与えられた場合、権限のあるノードの最後の状態レコード (単一の行 - 太字で強調表示) を取得したい場合、権限のあるノードは、何も存在しない場合に「開始」に入った最新のノードです。開始段階に入るノードは、ログに記録される最新のノードだけです。
order by (フィルターではなく) boolean(state = 'starting), time_stamp desc を使用して node_id ごとに何らかのフォーム グループを作成することを考えましたが、これを正しく理解できないようです。注文。
Postgres 9.xを使用しています