서브쿼리?
서브쿼리란 SQL문 속에서 또 다른 SQL문을 사용하는 것을 말한다.
테이블 내에서 다시 한 번 쿼리문에 의해 레코드가 조회되고 검색된다.
입력된 성적 데이터들 중 국어 점수의 평균을 조회해보았다.
select kor from sungjuk;
select avg(kor) from sungjuk;
select round(avg(kor),0) from sungjuk; -- 66
select round(avg(kor),0) as avg_kor from sungjuk;
66점이 나왔다.
이제 데이터들의 국어점수 중 평균 이상의 점수인 국어 점수를 구해보려한다.
그럴땐 쉽게는 아래와 같은 코드를 사용해도 되지만,
select uname, kor from sungjuk where kor>=66;
이것은 국어 점수의 평균이 66점일때만 사용이 가능하다.
이 66 대신에 위에서 사용했던 쿼리문이 다시 한번 들어가도 가능하다.
select uname, kor from sungjuk where kor>=(select round(avg(kor),0) from sungjuk);
아래의 문제를 풀어보자.
문1) 서울지역의 국어점수 평균보다 잘한 국어점수가 다른 지역에 있는지 조회하시오
select uname, addr, kor, (select round(avg(kor),0) from sungjuk where addr='Seoul') avg_kor
from sungjuk
where kor>=(select round(avg(kor),0) from sungjuk where addr='Seoul')
and addr!='Seoul';
문2) 국어점수의 최소값보다 이하 점수가 수학 또는 영어점수에 있는지 조회하시오
select uname, mat, eng, (select min(kor) from sungjuk) as min_kor
from sungjuk
where mat<=(select min(kor) from sungjuk)
or eng<=(select min(kor) from sungjuk);
'⁂ Oracle DB > : 기본 익히기' 카테고리의 다른 글
[Oracle] #4-3 Oracle 함수 : nvl, 모조칼럼(rownum, rowid) (0) | 2022.08.23 |
---|---|
[Oracle] #4-2 Oracle에서 자주 쓰이는 함수 모음 (0) | 2022.08.23 |
[Oracle] #3-5 having 조건절, CASE WHEN ~ THEN END 구문 (0) | 2022.08.23 |
[Oracle] #3-4 데이터 가공하기 : distinct, group by, 집계함수 (0) | 2022.08.22 |
[Oracle] #3-3 자료형과 제약 조건 (0) | 2022.08.22 |