-- SELECT 문의 결과가 하나의 컬럼이면 WHERE 절에서 SELECT 문을 사용 할 수 있다.
-- 단, IN 연산자가 아니고 관계연산자인 경우 결과가 하나의 행 이어야 한다.
-- 최대 급여를 받는 사람은 ?
SELECT name, basicpay FROM insa
WHERE basicpay = (SELECT MAX(basicpay) FROM insa);
-- 최소 급여를 받는 사람은 ?
SELECT name, basicpay FROM insa
WHERE basicpay = (SELECT MIN(basicpay) FROM insa);
-- 급여가 평균 미만인 사람 ?
SELECT name, basicpay FROM insa
WHERE basicpay < (SELECT AVG(basicpay) FROM insa);
SELECT name,
ROUND(basicpay- (SELECT AVG(basicpay) FROM insa), 0) 평균과차이
FROM insa;
=>행이 하나이기 때문에 빼기가 가능하다 (ROUND 소수점 절삭)
-- basicpya+sudang 을 가장 많이받는 사람(WHERE SELECT)
-- name basicpay basicpay+sudang
SELECT name, basicpay, basicpay+sudang pay
FROM insa
WHERE basicpay+sudang > = (SELECT MAX(basicpay) FROM insa);
-- basicpay를 평균 이하 받는 사람
-- name basicpay 출력
SELECT name, basicpay FROM insa
WHERE basicpay <= (SELECT AVG(basicpay) FROM insa);
-- basicpay를 평균 이상 받는 사람의 인원수
SELECT COUNT(*) FROM insa
WHERE basicpay >= (SELECT AVG(basicpay) FROM insa);
'오라클' 카테고리의 다른 글
오라클 ROWNUM : 쿼리의 결과의 각각의 행 순서 값을 갖는 의사 컬럼 (0) | 2013.05.30 |
---|---|
오라클 GROUP BY : 그룹별 통계 (0) | 2013.05.30 |
오라클 집계함수(성능이 많이 떨어짐) (0) | 2013.05.30 |
오라클 집합연산자 (0) | 2013.05.30 |
오라클 DECODE : 각각의 조건에 맞는 값에 대한 처리 결과 리턴(CASE 보다 성능 떨어짐) (0) | 2013.05.30 |