ProgreSQL SELECT절 에러

eper의 이미지

INSERT INTO COUPON_USER_LIST (REAL_NUM)
SELECT (a.MAX_NUM + ROWNUM) AS REAL_MAX_NUM
FROM
(
SELECT MAX(NUM) AS MAX_NUM
FROM COUPON_USER_LIST
)a;

여기서 2번째줄 '+' 부분에서 에러 발생하였는데 어떻게 수정해야할지 모르겠습니다..

chanik의 이미지

정확한 DB이름과 오류메시지를 주시면 좋았겠네요.
PostgreSQL이라고 가정하고 찾아봤습니다.

[DBMS] DBMS 별 rownum 사용법
http://rocksea.tistory.com/213

대충 아래와 같이 하면 오류만은 피할 수 있지 않을까요?
그런데, COUPON_USER_LIST 테이블에 뭔가 insert된다면 항상 a.MAX_NUM + 1 값이 될 겁니다.
query의 의도는 모르겠지만 원하시는 결과는 아닐 것 같군요.

INSERT INTO COUPON_USER_LIST (REAL_NUM)
SELECT (a.MAX_NUM + ROW_NUMBER() OVER ()) AS REAL_MAX_NUM
FROM
(
SELECT MAX(NUM) AS MAX_NUM
FROM COUPON_USER_LIST
)a;
INSERT INTO COUPON_USER_LIST (REAL_NUM)
SELECT (a.MAX_NUM + a.ROWNUM) AS REAL_MAX_NUM
FROM
(
SELECT MAX(NUM) AS MAX_NUM, ROW_NUMBER() OVER () AS ROWNUM
FROM COUPON_USER_LIST
)a;
eper의 이미지

제가 모든쿼리부분을 올려드린게 아니었습니다..죄송해요.
MAX_NUM부분이 int형이 아니라 string형이었기 때문에 발생한 에러였습니다.
그래도 답변 감사드려요 *^^*

세벌의 이미지