본문 바로가기

Study

(259)
sql중급 / 집합연산자 067 집합 연산자로 데이터를 위아래로 연결하기 1(UNION ALL) 데이터를 양옆으로 연결해서 출력하는 것 = join 데이터를 위아래로 연결해서 출력하는 것 = 집합연산자 ㅇ집합연산자의 종류 1. union all : 합집합 2. union : 합집합 3. intersect : 교집합 4. minus : 차집합 문제319. union all을 이용해서 데이터를 위아래로 연결해서 출력하는데 삶의 주관적 만족도가 남자의 데이터와 여자의 데이터를 다음과 같이 위아래로 연결해서 출력하시오 select feature2, extr_satifi + few_satifi as 만족도, rank() over (order by extr_satifi + few_satifi desc) as 순위 from satisfy_t..
sql중급 / 1999 ANSI join ㅁ sql의 핵심 1. 조인 2. 서브쿼리 ㅁ조인문법의 종류 1. 오라클 조인문법 - equi join - non equi join - outer join - self join 2. 1999 ANSI(American National Standard Institute) 표준문법 - on절을 사용한 조인 - using절을 사용한 조인 - natural join - left/right/full outer join - cross join ㅁ복습 문제303. 직업이 SALESMAN인 사원들의 이름, 직업, 부서위치, 부서명(dname)을 출력하시오 select e.ename, e.job, d.loc, d.dname from emp e, dept d where e.deptno = d.deptno and e.job ..
문제4. SQL / rollup하여 생긴 null값에 데이터 입력하기 [처음 쓴 코드] select deptno, case when deptno is null then decode(to_char(grouping(job)),1,'전체토탈',job) when job is null then decode(to_char(grouping(job)),1,'부서토탈',job) else job end as job2, sum(sal) from emp group by rollup(deptno, job); 처음 쓴 코드로도 문제가 풀렸으나, decode 함수를 굳이 써야 하는지 의문이 생김 [수정코드] -- 수정코드1 select deptno, case when deptno is null then '전체토탈' when job is null then '부서토탈' else job end as jo..
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 단축키 정리 https://jhnyang.tistory.com/325 [DBMS] 오라클 SQL DEVELOPER 디벨로퍼 단축키 정리~! [데이터베이스 완전정복 목차] 안녕하세요 오늘도 찾아온 블로그 주인 양햄찌입니다. 저는 회사에서는 오렌지를 사용하고 집에서는 SQL DEVELOPER를 사용하는데요. 왜냐. 오렌지는 유료고 SQL DEVELOPE jhnyang.tistory.com ㅁ 주석처리 ctrl + / : 일반행 주석처리 shift + alt + c : 선택블록 주석처리
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..

반응형