私はpostgresql8.3を使用しており、単純なsqlクエリがあります。
SELECT a.id,a.bpm_process_instance_id,a.actor_id
FROM bpm_task_instance a
WHERE a.bpm_process_instance_id IN
(
SELECT bpm_process_instance_id
FROM incident_info
WHERE status = 12
AND registrant = 23
)
だから、私は次のような結果セットを取得しました:
id instance_id actor_id
150 53 24
147 53 26
148 53 25
161 57 26
160 57 26
158 57 24
165 58 23
166 58 24
167 58 24
ここで、instance_idで最大IDを取得したいのですが、結果は次のようになります。
id instance_id actor_id
150 53 24
161 57 26
167 58 23
どうすれば結果を得ることができますか?次のSQLを使用していますが、エラーが発生します。
エラー:リレーション「x」は存在しません
SELECT *
FROM (SELECT a.id,a.bpm_process_instance_id,a.actor_id
FROM bpm_task_instance a
WHERE a.bpm_process_instance_id IN
(
SELECT bpm_process_instance_id
FROM incident_info
WHERE status = 12
AND registrant = 23
)
) AS x
WHERE x.id = (
SELECT max(id)
FROM x
WHERE bpm_process_instance_id = x.bpm_process_instance_id
)
私を助けることができる人、どうもありがとう!