인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

최원빈님의 프로필 이미지
최원빈

작성한 질문수

다양한 사례로 익히는 SQL 데이터 분석

채널별 월별 세션의 매출 전환율과 매출액 구하기

b.sum_revenue::numeric 관련 질문

작성

·

197

0

안녕하세요 선생님:) 질문이 있어 글을 남기게 되었습니다. 항상 좋은 강의 감사합니다.

해당 강의에서 나온 코드를 일부를 보면

b.ord_month, round(b.sum_revenue::numeric, 2) as sum_revenue

이러한 코드가 있었어요.

그런데 여기서 ::numeric을 왜 붙이는 건지 조금더 자세히 알려주실 수 있을까요?

이미 sum_revenue는 숫자로 이루어져있는데 뒤에 numeric을 붙이는 이유를 알고 싶습니다.

감사합니다

 

답변 1

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

postgresql이 좀 타입 체크를 심하게 하는 경우가 있습니다.

특히 round()함수를 사용할 때 이런 경우가 종종 발생하는데, 예제 코드에서 numeric을 안주면 round에서 오류가 발생할 것입니다.

round()의 인자로 들어가는 컬럼이 명확하게 numeric이라고 명시되지 않으면 수행시 오류가 발생할 수 있습니다. 실제로도 number 값인데, precision이 좀 다르다거나 하는 경우 오류가 날수 있습니다. 때문에 postgresql에서 round() 함수 사용시에는 명확하게 numeric으로 형변환을 해주는 것이 좋습니다.

 

감사합니다.

 

최원빈님의 프로필 이미지
최원빈

작성한 질문수

질문하기