궁금한 질문! 0 1 338

by 김도훈 [2019.08.20 11:02:40]


주말 평일 연령대로 나눠서 가입자 수를 등록하려고 하는데, 이 방법으로 하니깐 잘 되었습니다. 하지만 코드가 깔끔하지 못해서 group by 끝에 명명법으로 표기를 하려구 하니깐 오류가 뜨네요.. 오류 안뜨게 하는 방법이 있나요?

select  (case when to_char(first_inst_Date, 'D') in ('1', '7') then '주말'
              when to_char(first_inst_Date, 'D') in ('2','3','4','5','6') then '평일' end) as "주말 or 평일",           
        (case when  TO_NUMBER(to_char(sysdate,'YYYY')) - 1900 - TO_NUMBER(substr(cust_id1,1,2)) >= 50 then '50대이상'
              when  TO_NUMBER(to_char(sysdate,'YYYY')) - 1900 - TO_NUMBER(substr(cust_id1,1,2)) >= 40 then '40대'
              when  TO_NUMBER(to_char(sysdate,'YYYY')) - 1900 - TO_NUMBER(substr(cust_id1,1,2)) >= 30 then '30대'
            when  TO_NUMBER(to_char(sysdate,'YYYY')) - 1900 - TO_NUMBER(substr(cust_id1,1,2)) >= 20 then '20대'else '해지가입자' end) as "연령", count(cust)
from cust_master
where FIRST_INST_DATE >= '2019-01-01'
and FIRST_INST_DATE < '2019-07-01' 
group by  rollup((case when TO_NUMBER(to_char(sysdate,'YYYY')) - 1900 - TO_NUMBER(substr(cust_id1,1,2)) >= 50 then '50대이상' 
                when TO_NUMBER(to_char(sysdate,'YYYY')) - 1900 - TO_NUMBER(substr(cust_id1,1,2)) >= 40 then '40대' 
                when TO_NUMBER(to_char(sysdate,'YYYY')) - 1900 - TO_NUMBER(substr(cust_id1,1,2)) >= 30 then '30대' 
                when TO_NUMBER(to_char(sysdate,'YYYY')) - 1900 - TO_NUMBER(substr(cust_id1,1,2)) >= 20 then '20대'else '해지가입자' end),
                
          (case when to_char(first_inst_Date, 'D') in ('1', '7') then '주말'
                when to_char(first_inst_Date, 'D') in ('2','3','4','5','6') then '평일' end));

 

by 마농 [2019.08.20 11:28:16]

1. 알리아스를 사용하려면?
 - 인라인뷰를 이용하면 됩니다.
2. 기타 의문점.
 - "해지가입자"의 의미가 뭔가요?
 - 연령 조건을 보면 1900 년대생에 대해서만 조건을 주는데? 2000년대생은 없는거 확실한가요?
 - 100세 시대에 혹시나 1800 년대생은 없는지?

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