sql기본 / rollup, cube, grouping sets, row_number
ㅁ 복습 - 옵티마이져 : 스스로 학습해서 오라클 환경에서 돌아가는 SQL들의 성능을 높이는 기능 - 함수 1. 단일행 함수 : 문자, 숫자, 날짜, 변환, 일반 2. 복수행 함수 : max, ,min, avg, sum, count 3. 데이터 분석함수 : rank, dense_rank, ntile, listagg, cume_dist, lag, lead, sum() over (), ratio_to_report(), sum+decode, pivot, unpivot, rollup ㅇrollup을 사용한 현업사례 문제 239. 부서번호, 직업, 부서번호별 직업별 토탈월급을 출력하시오 select deptno, job, sum(sal) from emp group by deptno, job order by dep..
문제3. SQL / class_type, 통신사, 인원수를 출력하기
[내가 쓴 코드] 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_telec..
sql기본 / 데이터 분석 함수(unpivot, sum+over, ratio_to_report, rollup)
ㅁ복습 1. 오라클 설치 2. 데이터를 검색하는 select문의 6가지 절 select 컬럼명 from 테이블명 where 검색조건(일반조건) group by 그룹핑 할 명 having 그룹함수로 검색조건 order by 정렬순서 (실행순서 : from > where > group by > having > select > order by) 3. 함수 - 단일행 함수 : 문자, 숫자, 날짜, 변환, 일반 - 복수행 함수 : max,min,avg, sum, count - 데이터 분석 함수 : rank, dense_rank, ntile, cume_dist, listagg, lag, lead, pivot 049 COLUMN를 ROW으로 출력하기(UNPIVOT) ㅁ스크립트 생성 1. order2 테이블 생성 dr..
sql 기본 / 데이터분석함수(dense_rank, ntile, cume_diste, listagg, lad, lead, sum+decode, pivot)
042 데이터 분석 함수로 순위 출력하기 2(DENSE_RANK) /*이름과 직업과 월급과 순위를 출력하는데 그 옆에 순위가 동일한 사람이 여러명인 경우 바로 다음 순위가 출력되게 하시오*/ select ename, job, sal, rank() over (order by sal desc) as 순위, dense_rank() over (order by sal desc) 순위2 from emp where job in ( 'ANALYST','SALESMAN'); 문제173. 부서번호, 이름, 입사일, 먼저 입사한 사원순으로 순위를 출력하시오(dense_rank를 사용) select deptno, ename, hiredate, dense_rank() over (order by hiredate asc) 순위 f..
문제2. SQL / 이메일에서 도메인 추출하기
[내가 쓴 코드] select substr(substr(email, 1,instr(email, '.')-1),instr(email,'@')+1) from emp; [내가 쓴 코드의 문제] 이메일 아이디에 '.'이 포함되면 null값이 나옴 [다른 사람이 쓴 코드] -- 1 select substr( email, instr(email,'@')+1, instr(email,'.')-instr(email,'@')-1 ) from emp; -- 이메일 아이디에 '.'이 포함되면 null값이 나옴 -- 2 select substr(email,instr(email,'@')+1,instr(substr(email,instr(email,'@')+1),'.')-1) from emp; -- 제대로 출력됨 [해결] -- 다시 ..
sql 기본 / 데이터분석 함수 (rank)
041 데이터 분석 함수로 순위 출력하기 1(RANK) rank() over (order by 컬럼명) : over 확장하다는 뜻. 즉, over 다음에 나오는 괄호안의 내용으로 확장해서 rank를 출력하겠다는 뜻 문제165. 이름, 월급, 월급에 대한 순위를 출력하시오 select ename, sal, rank() over (order by sal desc) as 순위 from emp; 문제166. 직업이 ANALYSTE, MANAGER인 사원들의 이름, 직업, 월급과 월급에 대한 순위를 출력하세요 select ename, job, sal, rank() over (order by sal desc) as 순위 from emp where job in ('ANALYST','MANAGER'); 문제167. 이..
sql 기본 / 복수행함수
ㅁ복습 1. 오라클 설치(18c) 2. 기본 select 문 : select , from , where, order by (실행순서 : from > where > order by > select) 3. 단일행 함수 : 문자, 숫자, 날자, 변환, 일반 복수행 함수 : max, min, avg, sum, count 036 최대값 출력하기(MAX) max(컬럼명) --사원 테이블에서 최대 월급을 출력하세요 select max(sal) from emp; 문제125. 우리반에서 최대 나이를 출력하시오 select max(age) from emp14; 문제126. 직업이 SALESMAN인 사원들 중에서 최대월급을 출력하시오 select max(sal) from emp where job = 'SALESMAN'; -..