1. 테이블 생성 및 데이터 입력


drop table temp purge;

CREATE TABLE TEMP (
 EMP_ID      NUMBER NOT NULL PRIMARY KEY,
 EMP_NAME    VARCHAR2(10) NOT NULL,
 BIRTH_DATE  DATE,
 DEPT_CODE   VARCHAR2(06) NOT NULL,
 EMP_TYPE    VARCHAR2(04),
 USE_YN      VARCHAR2(01) NOT NULL,
 TEL         VARCHAR2(15),
 HOBBY       VARCHAR2(30),
 SALARY      NUMBER,
 LEV         VARCHAR2(04)
);

INSERT INTO TEMP VALUES (19970101,'김길동',TO_DATE('19740125','YYYYMMDD'),'AA0001','정규','Y','','등산',100000000,'부장');
INSERT INTO TEMP VALUES (19960101,'홍길동',TO_DATE('19730322','YYYYMMDD'),'AB0001','정규','Y','','낚시',72000000,'과장');
INSERT INTO TEMP VALUES (19970201,'박문수',TO_DATE('19750415','YYYYMMDD'),'AC0001','정규','Y','','바둑',50000000,'과장');
INSERT INTO TEMP VALUES (19930331,'정도령',TO_DATE('19760525','YYYYMMDD'),'BA0001','정규','Y','','노래',70000000,'차장');
INSERT INTO TEMP VALUES (19950303,'이순신',TO_DATE('19730615','YYYYMMDD'),'BB0001','정규','Y','','',56000000,'대리');
INSERT INTO TEMP VALUES (19966102,'지문덕',TO_DATE('19720705','YYYYMMDD'),'BC0001','정규','Y','','',45000000,'과장');
INSERT INTO TEMP VALUES (19930402,'강감찬',TO_DATE('19720815','YYYYMMDD'),'CA0001','정규','Y','','',64000000,'차장');
INSERT INTO TEMP VALUES (19960303,'설까치',TO_DATE('19710925','YYYYMMDD'),'CB0001','정규','Y','','',35000000,'사원');
INSERT INTO TEMP VALUES (19970112,'연흥부',TO_DATE('19761105','YYYYMMDD'),'CC0001','정규','Y','','',45000000,'대리');
INSERT INTO TEMP VALUES (19960212,'배뱅이',TO_DATE('19721215','YYYYMMDD'),'CD0001','정규','Y','','',39000000,'과장');
commit;



2. 직급 별 최저 연봉을 가진 직원의 사번과 연봉을 출력


- 서브 쿼리 이용 O
SQL> select lev, emp_id, salary
  2  from temp
  3  where (salary , lev) in (
  4  select min(salary), lev from temp group by lev
  5  );

LEV      EMP_ID     SALARY
---- ---------- ----------
과장   19960212   39000000
사원   19960303   35000000
차장   19930402   64000000
대리   19970112   45000000
부장   19970101  100000000


- 서브 쿼리 이용 X
SQL> select lev,
  2         substr(min(lpad(to_char(salary), 10, '0') || emp_id), 11) emp_id,
  3        min(salary) salary
  4  from temp
  5  group by lev;

LEV    EMP_ID     SALARY                                                                       
---- -------- ----------
과장 19960212   39000000
사원 19960303   35000000
차장 19930402   64000000
대리 19970112   45000000
부장 19970101  100000000

'Database > Oracle' 카테고리의 다른 글

재미있는 쿼리 2  (0) 2015.01.06
MOD 관련 쿼리  (0) 2015.01.06
개행문자 chr(10) 이용한 쿼리  (0) 2015.01.06
재미있는 쿼리 1  (0) 2015.01.06
' ' 데이터가 NULL 일까?  (0) 2013.10.02
Explain plan 문법  (0) 2013.08.01
Posted by 황군스
TAG , ,

댓글을 달아 주세요