작성
·
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)면 충분할 것 같은데, 이걸 굳이 위와 같이 바꾸실 필요가 있을까 생각도 듭니다.
둘 다 같은 결과가 나오니, 편하신 것 선택하시면 될 것 같습니다.
감사합니다.