STUDENT 테이블과 DEPARTMENT 테이블을 사용하여 '서진수' 학생과
1전공(DEPTNO2)이 동일한 학생들의 이름과 1전공 이름을 출력하세요

 

먼저 서진수 학생의 전공을 추린다

SELECT DEPTNO1
FROM STUDENT
WHERE NAME = '서진수';

 

101번을 전공하는 학생이름과 전공을 출력한다

SELECT S.NAME STUD_NAME, d.dname DEPT_NAME
FROM STUDENT S, DEPARTMENT D
WHERE D.DEPTNO = 101 AND S.DEPTNO1 = d.deptno;

 

101자리에 맨 위 코드를 서브쿼리한다

SELECT S.NAME STUD_NAME, d.dname DEPT_NAME
FROM STUDENT S, DEPARTMENT D
WHERE D.DEPTNO =
(
  SELECT DEPTNO1
  FROM STUDENT
  WHERE NAME = '서진수'
) 
AND S.DEPTNO1 = d.deptno;

 

PROFESSOR 테이블과 DEPARTMENT 테이블을 조회하여 '주승재' 교수보다 나중에 입사한 사람의 이름과 입사일, 학과명을 출력하세요.

 

먼저 주승재교수의 입사일을 확인

SELECT HIREDATE
FROM PROFESSOR
WHERE NAME = '주승재';

 

위 코드를 서브쿼리하여 주승재 교수보다 입사일이 늦은 사람들을 추리기

SELECT P.NAME , P.HIREDATE, d.dname
FROM PROFESSOR P, DEPARTMENT D
WHERE HIREDATE > 
(
SELECT HIREDATE
FROM PROFESSOR
WHERE NAME = '주승재'
)
AND p.deptno = d.deptno;

 

 

STUDENT 테이블에서 1전공(DEPTNO1)이 201번인 학과의 평균 몸무게보다
몸무게가 많은 학생들의 이름과 몸무게를 출력하세요.

 

먼저 학생들의 평균 몸무게를 확인

SELECT AVG(WEIGHT)
FROM STUDENT
WHERE DEPTNO1 = 201
GROUP BY DEPTNO1;

 

위 코드를 서브쿼리하여  필요한 요소를 출력

SELECT NAME, WEIGHT
FROM STUDENT
WHERE WEIGHT >
(
SELECT AVG(WEIGHT)
FROM STUDENT
WHERE DEPTNO1 = 201
GROUP BY DEPTNO1
);

 

EMP2 테이블을 사용하여 전체 직원 중 '과장' 직급의
최소 연봉자보다 연봉이 높은 사람의 이름과 직급, 연봉을 출력하세요.
단, 연봉 출력 형식은 아래와 같이 천 단위 구분 기호와 $표시를 하세요.

SELECT NAME, POSITION, to_char(pay, '$999,999,999') SALAERY
FROM EMP2
WHERE pay >
(
    SELECT MIN(PAY)
    FROM EMP2
    WHERE POSITION = '과장'
);

 

EMP2 테이블과 DEPT2 테이블을 조회하여 각 부서별 평균 연봉을 구하고
그중에서 평균 연봉이 가장 적은 부서의 평균 연봉보다
적게받는 직원들의 부서명, 직원명, 연봉을 출력하세요.

SELECT DEPT2.DNAME, EMP2.NAME, TO_CHAR(EMP2.PAY, '$999,999,999') SALARY
FROM EMP2, DEPT2
WHERE PAY < 
(
SELECT *
FROM
(
SELECT AVG(PAY)
FROM EMP2
GROUP BY  DEPTNO
ORDER BY  AVG(PAY)
)
WHERE ROWNUM = 1
) AND EMP2.DEPTNO = DEPT2.DCODE;

 

 

 

 

 

+ Recent posts