DB2에서 RATIO_TO_REPORT() OVER() 함수를 쓰면 에러가 납니다. 0 2 698

by 감동맨 [2022.07.14 19:29:03]


SELECT 상품코드, 상품명, 일년, 이년, 삼년, 평균, 비율

FROM (

           SELECT 상품코드, 상품명, 

                            SUM(CASE WHEN 날짜 BETWEEN 날짜-12개월 AND 날짜 THEN 사고건수) AS 일년,

                              ........  AS 이년,

                              ........  AS 삼년,

                              ......... AS 평균

              FROM 테이블

              GROUP BY 상품 WITH ROLLUP) AS A

 

이런 쿼리 입니다.

ROW가 4개가 나오고 평균컬럼의 ROW를 합해서 각 ROW마다 비율을 구하려고 합니다. 

 

비율 컬럼에 RATIO_TO_REPORT(평균) OVER() 함수를 쓰려고 하는데 

SQL ERROR 43601 : SQL0199 KEYWORD OVER NOT EXPECTED. VALID TOKEN:),.

오류가 뜨면서 안됩니다. 

비율 컬럼을 제거하고 돌리면 값이 잘 나옵니다.

 

 왜그럴까요,,?

by 마농 [2022.07.14 20:10:26]

RATIO_TO_REPORT() OVER() 만 안되는 것인지? 분석함수 자체가 안되는 것인지?
1. 분석함수가 지원된다면?
- 평균 / SUM(평균) OVER() 하면 됩니다.
2. 분석함수가 지원되지 않는다면?
- 전체 평균 합계를 따로 구해서 조인하셔야 합니다.


by pajama [2022.07.14 23:14:12]

syntax 오류 같아 보이네요.

참고로 db2 버전이 10.1 이상이시면 ratio_to_report 함수 사용은 가능합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입