WITH t AS ( SELECT 3 seq, 10000 금액 FROM dual UNION ALL SELECT 2, 30000 FROM dual UNION ALL SELECT 1, 50000 FROM dual ) SELECT seq , 금액 , LEAST(금액, 요청액, 요청액 - 누적금액 + 금액) 차감액 , 금액 - LEAST(금액, 요청액, 요청액 - 누적금액 + 금액) 잔액 FROM (SELECT seq , 금액 , SUM(금액) OVER(ORDER BY seq DESC) 누적금액 , 20000 요청액 FROM t ) WHERE 누적금액 - 금액 < 요청액 ;