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

최윤정님의 프로필 이미지
최윤정

작성한 질문수

데이터 분석 SQL Fundamentals

순위 함수 cume_dist, percent_rank, ntile 이해

max(lpad(....)) 사용시의 오류 가능성

작성

·

283

·

수정됨

0

 

실습코드 'first_value_last_value_Analytic_실습'의 마지막

"-- 연속된 데이터 흐름에서 값이 Null일 경우 바로 값이 있는 바로 위의 데이터를 가져 오기." 와 관련된 질문입니다(아마도 실습코드는 있는데 본 강의에서는 다루지 않으신 듯합니다).

 

(예제코드)

temp_04 as (

select *

, max(lpad(rnum::text, 6, '0')||daily_sum) over (order by ord_date rows between unbounded preceding and current row) as temp_str

from temp_03 order by ord_date

)

dayily_sum자체를 일정한 자리수로 padding을 해주고 난 뒤 처리해도 되지 않을까 생각해봤습니다.

temp_04 as (

select *

, max(lpad(rnum::text, 6, '0')||lpad((daily_sum)::text,6, '0' )) over (order by ord_date rows between unbounded preceding and current row) as temp_str

from temp_03 order by ord_date

)

 이렇게 해서 처리해도 될까요?

 

 

답변 1

1

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

안녕하십니까,

앗, 이 SQL이 실습코드에는 들어가 있군요. 난이도가 있어서 강의에서 빼버렸는데, 실습코드에서 지우질 못했군요.

말씀하신대로 max(lpad(rnum::text, 6, '0')||lpad((daily_sum)::text,6, '0' )) 로 하셔도 되는데, max(lpad(rnum::text, 6, '0')||daily_sum)면 충분할 것 같은데, 이걸 굳이 위와 같이 바꾸실 필요가 있을까 생각도 듭니다.

둘 다 같은 결과가 나오니, 편하신 것 선택하시면 될 것 같습니다.

감사합니다.

 

최윤정님의 프로필 이미지
최윤정

작성한 질문수

질문하기