본문 바로가기

Study/class note

(247)
sql중급 / equi join, non equi join, outer join, self join 058 여러 테이블의 데이터를 조인해서 출력하기 1(EQUI JOIN) 조인(join)이 필요한 이유 : 하나의 테이블에서는 알 수 없는 정보를 다른 테이블과 조인함으로써 알아낼 때 사용 emp table ----- 조인(join)--------dept table ex) KING은 어느 부서위치에서 근무하는가? ALLEN은 어느 부서명에서 근무하는가? 위와 같은 질문의 답은 emp table에서 알 수 없음 > 다른 데이터를 가지고 조인해야 알 수 있음 -- 이름과 부서위치를 출력하세요 select ename, loc from emp, dept ; /* 에러 두 개의 테이블을 조인하기 위해서 where절에 조인 조건을 넣어줘야 함 조인하기 위해서는 공통된 데이터로 조인해야함 */ select ename,..
sql 중급 / 순위출력정리 ㅁ 복습 1.rownum 2. row_number() 3. order by 컬럼명 desc fetch first 3 rows only ㅇ정렬된 결과에서 상위 몇 개의 데이터를 가져오는 방법 1. order by 컬럼명 asc/desc fetch first 숫자 rows only; 2. order by 컬럼명 asc/desc fetch first 숫자 percent rows only; 문제272. 우리반에서 통신사가 kt인 학생들 중에서 나이가 높은 학생순으로 상위 20%에 해당하는 학생들을 출력하시오 select ename, age, lower(telecom) from emp14_address where lower(telecom) = 'kt' order by age desc fetch first 20 p..
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; -- 제대로 출력됨 [해결] -- 다시 ..
오라클 기능코드 -- 컬럼명과 유형 찾기 describe emp; -- 내가 접속한 오라클 환경의 데이터 형식을 확인하는 방법 select * from nls_session_parameters; -- 현재 셋팅되어 있는 날짜형식('RR/MM/DD') 변경하기 alter session set nls_date_format='YY/MM/DD'; -- sql의 실행계획을 확인하는 방법 explain plan for select ename, sal from emp where sal like '30%'; select * from table(dbms_xplan.display); -- sql 컬럼별 데이터 종류 찾기 select distinct class_type from emp14; -- csv 파일로 테이블 생성하기(예시) --1..
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'; -..

반응형