実際のデータがなければ、少し難しいかもしれませんが、私の提案は次のとおりです。
SELECT apvr.LIMIT, apvr.APPROVER_ID, usr.IS_ACTIVE, usr.USER_FULL_NAME, count(*) as numOfApprovals, max(appd.approval_date) as lastApprovalDate
FROM APPROVERS apvr
JOIN USER usr ON apvr.APPROVER_ID = usr.ID
JOIN IM_APPROVAL_DETAIL appd ON usr.ID = appd.APPROVER_ID
GROUP By apvr.Approver_ID;
これらのテーブルでの再発生を認識していないため、group by 句に問題がある可能性があります。したがって、代わりにサブセレクトを使用することもできます。
SELECT apvr.LIMIT, apvr.APPROVER_ID, usr.IS_ACTIVE, usr.USER_FULL_NAME, appd.numOfApprovals, appd.lastApprovalDate
FROM APPROVERS apvr
JOIN USER usr ON apvr.APPROVER_ID = usr.ID
JOIN IM_APPROVAL_DETAIL appd
JOIN (
SELECT approver_id id, count(*) numOfApprovals, max(approval_date) lastApprovalDate
FROM im_approval_detail
GROUP by id) appd
ON appd.id = usr.ID