[코드를 쓴 상황]
emp테이블에 등록된 학생들의 정보로 통신사와 통신사별 이용자의 최소 나이 출력하시오.
단, 통신사는 sk telecom이용자는 sk,skt,SK,SKT 등으로 기재되어 있음.
[내가 쓴 코드]
select decode(lower(telecom), 'kt', 'kt','lg','lg','sk'), min(age)
from emp
group by decode(lower(telecom), 'kt', 'kt','lg','lg','sk');
[다른 사람이 쓴 코드]
-- 선생님이 쓴 코드
select decode(lower(telecom), 'skt','sk',lower(telecom)), min(age)
from emp
group by decode(lower(telecom), 'skt','sk',lower(telecom));
-- 다른 학생이 쓴 코드
select replace(lower(telecom),'skt','sk'), min(age)
from emp
group by replace(lower(telecom),'skt','sk');
[해결]
1. 내가 쓴 코드에서는 kt, lg, skt 이외의 통신사도 skt로 출력됨 > 잘못된 데이터를 잡아내지 못함
2. 내가 쓴 코드는 불필요하게 길다. 조건값을 많이 넣으면 오타발생하여 오류날 가능성 있음.
[유의해야할 점]
1. 데이터를 일괄적으로 분류하기 위해 decode, replace 함수를 이용
반응형
'Study > class note' 카테고리의 다른 글
sql 기본 / 데이터분석 함수 (rank) (0) | 2021.11.08 |
---|---|
sql 기본 / 복수행함수 (0) | 2021.11.08 |
sql 기본 / 변환함수, 일반함수 (0) | 2021.11.05 |
sql 기본 / 문자함수, 숫자함수, 변환함수 (0) | 2021.11.04 |
sql 기본 / 문자함수 (0) | 2021.11.03 |