[내가 쓴 코드]
select class_type, 통신사, count(*)
from (select class_type, decode(lower(telecom), 'skt','sk',lower(telecom)) as 통신사
from emp14)
group by rollup( class_type, 통신사);
[다른 사람이 쓴 코드]
--1
select class_type, decode(lower(telecom),'skt','sk',lower(telecom)), count(*)
from emp14
group by rollup ( class_type, decode(lower(telecom),'skt','sk',lower(telecom)));
--2
create or replace view emp14_telecom
as
select class_type, decode(upper(telecom),'SK','SKT',upper(telecom)) as telecom2
from emp14;
select class_type, telecom2, count(*)
from emp14_telecom
group by rollup(class_type, telecom2);
[해결]
- 내가 쓴 코드는 서브쿼리, 다른 사람이 쓴 코드2는 view를 이용했음 > decode 함수를 늘리지 않는 방식
[유의할점]
- 일반쿼리, 서브쿼리, view 등 어떤 식을 적절하게 써야하는지 생각해보기
- 컬럼별칭 설정 시 영어 권장
반응형
'Study > class note' 카테고리의 다른 글
sql 중급 / 순위출력정리 (0) | 2021.11.12 |
---|---|
sql기본 / rollup, cube, grouping sets, row_number (0) | 2021.11.11 |
sql기본 / 데이터 분석 함수(unpivot, sum+over, ratio_to_report, rollup) (0) | 2021.11.10 |
sql 기본 / 데이터분석함수(dense_rank, ntile, cume_diste, listagg, lad, lead, sum+decode, pivot) (0) | 2021.11.09 |
문제2. SQL / 이메일에서 도메인 추출하기 (0) | 2021.11.08 |