<다중 컬럼 다중 로우>
- 직무(JOB_ID)별 최대 급여자의 사원 내역을 출력하라.
SELECT MAX(SALARY) FROM EMPLOYEES GROUP BY JOB_ID;
SELECT EMPLOYEE_ID, LAST_NAME, SALARY, JOB_ID FROM EMPLOYEES
WHERE SALARY = (SELECT MAX(SALARY) FROM EMPLOYEES GROUP BY JOB_ID); >>>> 오류..
SELECT EMPLOYEE_ID, LAST_NAME, SALARY, JOB_ID FROM EMPLOYEES
WHERE (SALARY,JOB_ID) IN(SELECT MAX(SALARY) , JOB_ID FROM EMPLOYEES GROUP BY JOB_ID); IN 추가..
서브 쿼리 주의할 점
- ROW 가 1개인지 2개 이상인지 확인 하야여한다.
/* 01번 부서원들과 보너스가 같은 사원을 검색하라. */
SELECT * FROM EMP
WHERE COMM IN(SELECT COMM FROM EMP WHERE DNO = 01) AND DNO != 01;
WHERE 컬럼 = > 단일로우
WHERE 컬럼 IN => 다중로우
IN : 검색된 값 중에 하나만 일치하면 참이다.
ANY : 검색된 값 중에 조건에 맞는 것이 하나 이상 있으면 참
ALL : 모든 검색된 값과 조건에 맞아야 함.
--> 컬럼 > ALL(서브쿼리) => 컬럼 > MAX :가장 큰 값 보다 크다.
--> 컬럼 < ALL(서브쿼리) => 컬럼 < MIN :가장 큰 값 보다 크다.
--> 컬럼 > ANY(서브쿼리) => 컬럼 > MIN:가장 큰 값 보다 크다.
--> 컬럼 < ANY(서브쿼리) => 컬럼 < MAX:가장 큰 값 보다 작다.
/* 부서 번호 30번 최대급여자 보다 급여가 높은 사원을 출력하라. */
SELECT MAX(SAL) FROM EMP WHERE DNO = 30;
SELECT * FROM EMPLOYEES
WHERE SALARY > ALL(SELECT SALARY FROM EMPLOYEES WHERE DEPARTMENT_ID = 30);
SELECT * FROM EMPLOYEES
WHERE SALARY < ANY(SELECT SALARY FROM EMPLOYEES WHERE DEPARTMENT_ID = 30);
/* 학생중 기말고사 성적이 가장 낮은 학생의 정보를 검색하라. */
SELECT SNAME FROM STUDENT S INNER JOIN SCORE S1 ON S.SNO = S1.SNO
INNER JOIN COURSE C ON S1.CNO = C.CNO
GROUP BY SNAME
HAVING AVG(RESULT) =(SELECT MIN(AVG(RESULT)) FROM STUDENT S INNER JOIN SCORE S1 ON S.SNO = S1.SNO
INNER JOIN COURSE C
ON S1.CNO = C.CNO
GROUP BY SNAME);
/* 화학과 1학년 학생중에 평점이 평균 이하인 학생을 검색하라. */
SELECT DISTINCT SNAME, AVR FROM STUDENT
WHERE AVR <= (SELECT AVG(AVR) FROM STUDENT
WHERE SYEAR = 1 AND MAJOR ='화학')
ORDER BY AVR DESC;
/* 일반화학을 수강하는 학생중에 성적이 가장 낮은 학생의 이름을 검색하라. (조인 금지) */
SELECT SNAME FROM STUDENT S INNER JOIN SCORE S1 ON S.SNO = S1.SNO INNER JOIN COURSE C ON
S1.CNO = C.CNO WHERE RESULT = (SELECT MIN(RESULT) FROM STUDENT S INNER JOIN SCORE S1 ON S.SNO = S1.SNO INNER JOIN COURSE C ON
S1.CNO = C.CNO WHERE C.CNAME = '일반화학') AND C.CNAME = '일반화학';
'DataBase > SQL' 카테고리의 다른 글
게시판 페이징 처리 (0) | 2017.03.16 |
---|---|
FROM 절 서브 쿼리 (0) | 2017.03.16 |
HAVING 절 (0) | 2017.03.16 |
GROUP BY 절 (0) | 2017.03.16 |
그룹 함수 (0) | 2017.03.16 |