from 절의 서브쿼리 라고도 하거나 in line view 라고도 한다.
서브쿼리를 view 로 생성하면 더 간단하게 작성 가능하다.
문제 : 순위를 1등만 출력
select *
from ( select ename, sal, rank() over (order by sal desc)as 순위
from emp )
where 순위 =1;
범죄발생 시간 테이블 생성
문제 366 언피봇을 이용하여 컬럼을 데이터로 넣고 살인이 일어나는 시간과 건수 출력하시오
- 일단 언피봇문 생성
-
select * from crime_time unpivot (건수 for 시간 in (F0T3, F3T6 , F6T9 , F9T12 , F12T15, F15T18, F18T21, F21T24) );
- 살인의 시간, 건수를 구한다.
select 시간, 건수
from ( select *
from crime_time
unpivot (건수 for 시간
in (F0T3, F3T6 , F6T9 , F9T12 , F12T15, F15T18, F18T21, F21T24)
)
)
where crime_type = '살인';
문제 367 살인이 일어난 시간과 건수와 순위를 출력
select 시간, 건수, rank() over (order by 건수 desc) as 순위
from ( select *
from crime_time
unpivot (건수 for 시간
in (F0T3, F3T6 , F6T9 , F9T12 , F12T15, F15T18, F18T21, F21T24)
)
)
where crime_type = '살인';
문제 368 방화사건이 가장 많이 일어나는 시간대 출력 (1등만출력)
select 시간
from ( select 시간, 건수, rank() over (order by 건수 desc) as 순위
from ( select *
from crime_time
unpivot (건수 for 시간
in (F0T3, F3T6 , F6T9 ,F9T12,F12T15,F15T18,F18T21,F21T24
)
)
)
where crime_type = '방화'
)
where 순위 = 1;
'Oracle > SQL' 카테고리의 다른 글
SQL [DML문] Insert 데이터 입력 (0) | 2021.11.28 |
---|---|
SQL Sub Query Select 절 = Scalar 서브쿼리 (0) | 2021.11.28 |
SQL Sub Query Having 절 서브쿼리 (0) | 2021.11.28 |
SQL Sub Query Exists / Not Exists 존재여부 (0) | 2021.11.28 |
SQL Sub Query 다중컬럼 서브쿼리 (0) | 2021.11.28 |