본문 바로가기

오라클

오라클 WHERE절에서 SELECT문 사용하기

  -- 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);