무회blog

DB: having 절 사용예제 본문

DB

DB: having 절 사용예제

최무회 2021. 2. 8. 00:42
* 다중컬럼 다중로우

문hr> 직무(job_id)별 최대급여자의 사원 내역을 출력하라  

select max(salary),job_id from emp00
group by job_id ;


select employee_id, last_name, salary, job_id
  from emp00
  where (salary,job_id) IN (select max(salary),job_id from emp00
                    group by job_id)
                    order by salary desc;


--퀴즈 192> 01번 부서원들과 보너스(comm)가 같은 사원을 검색하라.
select * from emp;

select comm from emp
where dno = '01';

select eno,ename, comm,dno from emp
where comm in (select comm from emp
                where dno = '01');
----------------------------------------------------------------------------------------------------------
WHERE 컬럼 = (SELECT~) => 단일 로우
WHERE 컬럼 IN (SELECT~) => 다중로우​
1. 학생중 기말고사 성적이 가장 낮은 학생의 정보를 검색하라.

SELECT MIN(AVG(result))FROM score
   GROUP BY sno

SELECT s.sno, s.sname
   FROM student s, score r
   WHERE s.sno = r.sno
   GROUP BY s.sno, s.sname
   HAVING AVG(result) = (SELECT MIN(AVG(result)) FROM score
                            GROUP BY sno)  

2. 화학과 1학년 학생중에 평점이 평균이하인 학생을 검색하라.


select avg(avr) from student
    where major = '화학'
    and syear = 1

select * from student
    where major = '화학'
    and syear =1
    having avg(result) = (select avg(avr) from student
                where major = '화학'
                and syear = 1)
                
                
IN: 검색된 값 중이 하나만 일치하면 참이다.

ANY : 검색된 값 중에 조건에 맞는 것이 하나 이상만 있으면 참

ALL: 검색된 값과 조건에 모두 일치해야 참



* 컬럼> ALL(서브쿼리) => 컬럼> MAX: 가장 큰 값 보다 크다.

* 컬럼< ALL(서브쿼리) => 컬럼> MIN: 가장 작은 값 보다 작다.



* 컬럼> ANY(서브쿼리) => 컬럼> MIN: 가장 작은 값 보다 크다.

* 컬럼< ANY(서브쿼리) => 컬럼> MAX: 가장 큰 값 보다 작다.                

 

 

'DB' 카테고리의 다른 글

DB: hr 사용 예제, group by, 내장함수(sum,avg,max,count)  (0) 2021.02.08
DB: 서브쿼리(subquery) 사용 예제  (0) 2021.02.08
DB: JOIN 사용 예졔2, SELF 조인  (0) 2021.02.08
DB: JOIN 사용 예졔  (0) 2021.02.08
DB:PL/SQL, 사용법  (0) 2021.02.08
Comments