■ 조인
" 여러개의 테이블에 있는 컬럼들을
다 모아서
하나의 결과로 출력하기 위한 SQL 문법 "
예:
select * from dept;
문제179.
이름, 부서위치를 출력하시오
select ename, loc
from emp, dept
where 이름과 부서위치를 출력할 수 있을만큼
emp 와 dept 가 서로 어떤 연결고리가 있다는
증거를 보여줘야 한다.
**그냥 뽑으면 중복 오짐.
select ename, loc
from emp, dept
where emp.deptno = dept.deptno;
=
select E.ename, D.loc
from emp E, dept D
where E.deptno = D.deptno;
문제180.
위의 결과를 다시 출력하는데
부서위치가 DALLS 인 사원들만 출력하시오
select ename, loc
from emp, dept
where emp.deptno= dept.deptno
and
loc = 'DALLAS';
문제181.
직업이
SALEMAN 인 사원들의
이름과 직업과 부서위치를
출력하시오
select ename, job, loc
from emp, dept
where emp.deptno = dept.deptno
and
job = 'SALESMAN';
문제 182.
월급이 1000 에서 3000 사이인 사원들의
이름과 월급과 부서명과 직업을
출력하시오
select ename, sal, dname, job
from emp E, dept D
where E.deptno = D.deptno
and
sal between 1000 and 3000;
문제 183. 위의 결과에서 deptno 도 같이
출력해보시오.
select ename, sal, dname, job, E.deptno
from emp E, dept D
where E.deptno = D.deptno
and
sal between 1000 and 3000;
deptno 는 중복되니까
테이블 지정 해줘야 함.
사실, ename, dname, job 의 항목에도
테이블 붙여서 출력해야 한다.
안그러면 나중에 어디 테이블에서 나온 값인지
몰라서 일일이 다뒤지는 상황이 발생한다.
테이블 별칭= E, D
문제185.
이름이 KING 인 사원의
이름과 월급과 직업과 부서위치를
출력하시오
select E.ename, E.sal, E.job, D.loc
from emp E, dept D
where E.deptno = D.deptno
and
E.ename= 'KING';
문제186.
부서위치, 부서위치별 토탈월급을 출력하시오
select D.loc, sum(E.sal)
from emp E, dept D
where E.deptno = D.deptno
group by D.loc;
문제187. 위의 결과를 다시 출력하는데
토탈월급이 9000 이상인것만
출력하시오
select D.loc, sum(E.sal)
from emp E, dept D
where E.deptno = D.deptno
group by D.loc
having sum(E.sal) > 9000;
문제188.
직업이 SALESMAN 이고
월급이 1000 이상인 사원들의
이름과 월급과 직업과 부서위치를
출력하시오
select E.ename, E.sal, E.job, D.loc
from emp E, dept D
where E.deptno = D.deptno
and E.job = 'SALESMAN'
and E.sal > 1000;
문제189. 부서위치, 이름, 월급, 월급에 대한
순위를 출력하시오.
select D.loc, E.ename, E.sal,
dense_rank()over(order by E.sal desc)순위
from emp E, dept D
where E.deptno = D.deptno ;
문제190.
위의 결과를 다시 출력하는데
순위를 부서번호별로
각각 출력되게 하시오
select D.loc, E.ename, E.sal,
dense_rank()over(partition by D.loc order by E.sal desc)순위
from emp E, dept D
where E.deptno = D.deptno ;
문제191.
부서위치, 부서위치별로 속한 사원들의 이름을
가로로 출력하시오.
select D.loc,
listagg(E.ename, ',') within group(order by E.ename)이름
from emp E, dept D
where E.deptno = D.deptno
group by D.loc;
문제120.
부서위치, 부서위치별 토탈월급을 출력하는데
전체 토탈월급이 맨 아래쪽에 출력되게하시오
내꺼 틀린답
select D.loc,
sum(E.sal) over () 토탈월급 over(partition by D.loc order by E.sal asc;)
from emp E, dept D
where E.deptno = D.deptno
group by rollup(D.loc);
select nvl(D.loc, '전체토탈')as 부서위치,
sum(E.sal) as 토탈월급
from emp E, dept D
where E.deptno = D.deptno
group by rollup(D.loc);
문제193.
그럼 위의 문제를 다시 아래와 같이 결과가
출력되게 하시오.(숫자에 점 찍어서 나오게끔 하라는 뜻)
select nvl(d.loc,'총'),
to_char(sum(e.sal),'999,999')
from emp e, dept d
where e.deptno = d.deptno
group by rollup(d.loc);
문제194.
부서위치,
부서위치별 토탈월급,
부서위치별 최대월급,
부서위치별 평균월급,
부서위치별 인원수를 출력하시오
select D.loc as 부서위치,
sum(E.sal) as 토탈월급,
max(E.sal) as 최대월급,
round(avg(E.sal)) as 평균월급,
count(*) as 인원수
from emp E, dept D
where E.deptno = D.deptno
group by D.loc;
*partition by 가 필요없는 이유
: 부서위치가 통일되서 굳이 묶을 이유가 없음.
문제195.(오늘의 마지막 문제)
아래와 같이 결과를 출력하시오
select * from
(
select E.sal as 월급, D.loc as 위치
from emp E, dept D
where E.deptno = D.deptno
)
pivot(sum(월급)for 위치 in ('NEW YORK','DALLAS', 'CHICAGO'));
■EQUI JOIN
다른 컬럼을 조인시킨다.
문제196.
DALLAS 에서 근무하는
사원들의 이름과 월급과 부서위치를
출력하는데
월급이 높은 사원부터 출력하시오
select E.ename, E.sal, D.loc
from emp E, dept D
where E.deptno=D.deptno ----조인의 연결고리
and
D.loc = 'DALLAS' ----------------검색조건
order by E.sal desc;
문제197. 부서테이블 전체를 조회하시오
문제198.
이름과 부서위치를 출력하는데
출력 안 된 부서위치가 무엇인지
확인하시오
select E.ename, D.loc
from emp E, dept D
where E.deptno=D.deptno;
보스톤이 없음
emp 테이블에
부서번호 40번, 보스턴 근무자가 없어서.
■OUTER JOIN
각기 다른 두 테이블을 출력하는데
일치하지 않는 값도 출력가능하게 하는 기능.
문제199. 이름과 부서위치를 출력하는데
출력안된 부서위치도
같이 출력하시오.
******emp 테이블에 없는 내용도 뽑아라
select E.ename, D.loc, E.deptno
from emp E, dept D
where E.deptno(+)=D.deptno;
**emp 테이블에 없는 내용을 플러스+
해주려고 outer join sign 을 붙여준다.
※ (+) : outer join sign
■ join 의 문법의 종류 크게 2가지
1. 오라클 조인 문법
-equi join : 조인의 연결고리가
=(이퀄) 인 경우의 조인문법
-outer join: equi join 으로는
볼 수 없는 결과를 볼 때
사용하는 조인
-non equi join: 조인의 연결고리가
=(이퀄) 이 아닌 경우의 조인문법
-self join: 자기 자신의 테이블과
조인하는 조인 문법
2. 1999 ANSI 조인 문법
*값 추가하기
insert into emp(empno, ename, deptno)
values( 9293 , 'JANE', 70) ;
문제200.
이름과 부서위치를 출력하는데
사원 테이블에는 존재하는데
부서테이블에는 존재하지 않는
정보도 같이 출력하시오
select E.ename, D.loc, E.deptno
from emp E, dept D
where E.deptno=D.deptno(+);
문제201.
부서위치, 부서위치별 토탈월급을 출력,
BOSTON 도 출력하고
토탈월급이 높은것부터 출력하시오
select D.loc, sum(E.sal)
from emp E, dept D
where E.deptno(+)=D.deptno
group by d.loc
order by sum(E.sal) desc;
■NULL값 위치조정
근데 여기서
null 값이 맨 위에 있는게 싫다
맨 아래로 보내려면
select D.loc, sum(E.sal)
from emp E, dept D
where E.deptno(+)=D.deptno
group by d.loc
order by sum(E.sal) desc nulls last;
문제202.
위의 결과를 다시 출력하는데
토탈월급이 낮은 것부터 출력하시오.
select D.loc, sum(E.sal)
from emp E, dept D
where E.deptno(+)=D.deptno
group by d.loc
order by sum(E.sal) asc;
***낮은것 부터 하면
null 은 알아서 맨 뒤로 출력된다.
맨 위으로 빼고 싶으면
select D.loc, sum(E.sal)
from emp E, dept D
where E.deptno(+)=D.deptno
group by d.loc
order by sum(E.sal) asc nulls first;
1. 오라클 조인 문법
-equi join : 조인의 연결고리가
=(이퀄) 인 경우의 조인문법
-outer join: equi join 으로는
볼 수 없는 결과를 볼 때
사용하는 조인
-non equi join: 조인의 연결고리가
=(이퀄) 이 아닌 경우의 조인문법
-self join: 자기 자신의 테이블과
조인하는 조인 문법
2. 1999 ANSI 조인 문법
■ non equi join
salgrade : 급여등급 테이블
drop table salgrade;
create table salgrade
( grade number(10),
losal number(10),
hisal number(10) );
insert into salgrade values(1,700,1200);
insert into salgrade values(2,1201,1400);
insert into salgrade values(3,1401,2000);
insert into salgrade values(4,2001,3000);
insert into salgrade values(5,3001,9999);
commit;
****slagrade table
■NON EQUI JOIN
WEHRE 절의 연결고리가 서로 같지 않는
두 테이블을 연결할 때 사용하는 조인문법
문제203.
이름, 월급, 등급grade 를 출력하시오
(emp, salgrade 테이블 조인해서)
원하지 않는 답이 나옴↓
select E.ename, E.sal, S.grade
from emp E, salgrade S;
위의 salgrade 테이블 출력값과 비교하면
올바르지 못한 값이다.
위 대로 뽑으면
등급 5개에 대한 사원15명의 경우의수가
출력된다 (총 75개)
emp table 의 월급은
slagrade lowsal= losal
high sal= hisal 사이에 있다.
select E.ename, E.sal, S.grade
from emp E, salgrade S
where E.sal between S.losal and S.hisal;
***losal = low sal
hisal = high sal
※설명: 조인할 때 where 절의
조인의 연결고리가
= 이 아닌 경우의 조인문법을
non equi join 이라고 한다.
고객등급, 포인트 충전 등
문제204.
등급(grade), 등급별로 해당하는 사원들의
이름을 가로로 출력하시오
select S.grade,
listagg(E.ename, ',') within group
(order by E.ename)
from emp E, salgrade S
where E.sal between S.losal and S.hisal
group by S.grade;
■3개 TABLE JOIN
문제205.
이름, 월급, 급여등급, 부서위치를 출력하시오
**급여등급은 salgrade 테이블에 있는것과
조인하라는 뜻!!
오답
select E.ename, E.sal, S.grade, D.loc
from emp E, salgrade S, dept D
where E.sal between S.losal and S.hisal;
******3개 테이블 조인!!!!!!
dept--------emp--------------salgrade
연결고리 연결고리
즉
테이블 3개면
연결고리를 2개 써줘야 한다.
답
select E.ename, E.sal, S.grade, D.loc
from emp E, salgrade S, dept D
where E.deptno = D.deptno
and E.sal between S.losal and S.hisal
**왜 서브쿼리로 안했는가
>>>서브쿼리는 원하는 값만 where 지정 하기위해서인데
where 지정시 지정값 판단오류를 막기 위해
별칭지정 해서 작업해야하는데
실행순서 때문에
서브쿼리를 써야 한다.
205번은
where E.deptno = D.deptno
이 값을 안 넣어서 중복값이 출력
문제206.
아래표(문제205)에서 부서위치가 CHICAGO 인
사원들만 출력하시오
select E.ename, E.sal, S.grade, D.loc
from emp E, salgrade S, dept D
where E.deptno = D.deptno
and E.sal between S.losal and S.hisal
and
D.loc = 'CHICAGO';
select E.ename, E.sal, S.grade, D.loc
from emp E, salgrade S, dept D
where E.deptno = D.deptno -----------연결고리
and E.sal between S.losal and S.hisal--연결고리
and
D.loc = 'CHICAGO';---------------------검색조건
문제207. 아래와 같이 결과를 출력하시오
select S.grade,
listagg(E.ename||'('||D.loc ||')', ',')
within group
(order by E.ename) as LIST_ENAME
from emp E, salgrade S, dept D
where E.deptno = D.deptno
and E.sal between S.losal and S.hisal
group by S.grade;
■self join
" 자기 자신의 테이블과 조인하는 조인 문법"
언제 필요한가? 사원이름, 관리자의 이름(직속상사) 를 출력할 때
킹 밑에 블레이크, 클라크, 존스 있음
블레이크 밑에 팀원들 있음
클라크, 존스 밑에도 팀원들 있음
이런 관계도를 sql 로 만드는 거임
select empno, ename, mgr
from emp;
*mgr 은
자기의 직속상사 또는 관리자를 말함
블레이크의 상사=mgr 은 킹이다
존의 상사는 킹이다
■ self join
문제208.
사원이름, 관리자의 이름(직속상사)를
출력하시오
select
사원.ename as 사원,
관리자.ename as 관리자
from emp 사원, emp 관리자
where 사원.mgr = 관리자.empno;
문제209.(점심시간 문제)
select
관리자.ename||'('||관리자.sal||')' as 관리자,
listagg(사원.ename||'('||사원.sal||')', ',')
within group(order by 사원.ename) as 사원
from emp 관리자, emp 사원
where 관리자.empno=사원.mgr
and
관리자.deptno = 사원.deptno
group by 관리자.ename, 관리자.sal;
**group by 에
ename, sal 둘다 쓰는 이유
앞 창에 2개 그룹시키니까.
예전 166번은 통신사 하나라서.
■ 조인문법의 종류 2가지(페이지 239)
1. 오라클 조인문법
-EQUI JOIN (= inner join )
-NO EQUI JOIN
-OUTER JOIN
-SELF JOIN
2. 1999 ANSI 문법
-full outer join / on
-on 절을 사용한 조인 문법
문제211.
이름과 부서위치를 출력하는데
outer join 을 사용해서 작성을 하고
(+)<<<--outer join sign 을 양쪽에 둘 다
작성해서 수행해 보시오
Full outer join/on 을 사용해서
select E.ename, D.loc
from emp E, dept D
where E.deptno(+)=D.deptno(+);
에러남!!!!!!!!!!!!!
outer join 사인을 한군데만 쓸 수 있다고
에러나옴.
그래서
full outer join 이 필요함
(=1999 ANSI 문법이다)
ANSI = American National Standards Institute
미국국립표준문법
Oracle, mssql, mysql, postgre SQL, Maria db...
>>ansi 를 이용하면 위에 꺼 다 가능.
어느 데이터베이스에서든 다 사용할 수 있다.
-->>full outer join 문법
답
select E.ename, D.loc
from emp E full outer join dept D
on(E.deptno = D.deptno);
***각 테이블에 없는 값null도
알아서 뽑아준다.
문제212. 이름과 부서위치를 출력하는데
on 절을 사용한 조인문법으로 작성하시오
select E.ename, D.loc
from emp E join dept D
on(E.deptno=D.deptno);
*콤마 대신 join
where 대신 on
문제213. 위의 결과에서 DALLAS 에서
근무하는 사원들만 출력하시오
select E.ename, D.loc
from emp E join dept D
on(E.deptno=D.deptno)
and D.loc = 'DALLAS';
선생님답:
select E.ename, D.loc
from emp E join dept D
on(E.deptno=D.deptno) ---조인 연결 조건
where D.loc = 'DALLAS'; ----검색 조건
and 도 답이 나오나
왠만하면 where 절로 뽑으시오.
문제214.
월급이 3000 이상인 사원들의
이름과 월급과 직업과 부서명을
출력하시오
select E.ename, E.sal, E.job, D.dname
from emp E join dept D
on(E.deptno=D.deptno)
where E.sal > 3000;
문제215.
이름, 월급, 등급(grade)을 출력하는데
grade 가 3등급인 사원들만 출력하시오
select E.ename, E.sal, S.grade
from emp E join salgrade S
on(E.sal between S.losal and S.hisal)
where S.grade='3';
문제216.
이름, 월급, 부서위치, 급여등급(grade)을
출력하시오
select E.ename, E.sal, D.loc, S.grade
from emp E join dept D
on( E.deptno = D.deptno)
join salgrade S
on(E.sal between S.losal and S.hisal);
※설명:
dept ---------- emp ----------salgrade
연결시 위의 가운데 오는 값을
제일 먼저 써 줘야 한다.
■ 조인문법의 종류 2가지(페이지 239)
1. 오라클 조인문법
-EQUI JOIN (= inner join )
-NO EQUI JOIN
-OUTER JOIN
-SELF JOIN
■ANSI 문법
2. 1999 ANSI 문법
-on 절을 사용한 조인 문법
-left, right, full outer 조인 문법
-using 절을 사용한 조인 문법
-natural join
문제217.
아래의 오라클 조인 문법을
1999 ansi
문법으로 변경하시오
select E.ename, D.loc
from emp E, dept D ------> 오라클 조인 문법
where E.deptno(+) = D.deptno;
select E.ename, D.loc
from emp E right outer join dept D
on (E.deptno = D.deptno); ---->1999 ANSI 문법
RIGHT OUTER JOIN은 왼쪽 테이블에
조인시킬 컬럼의 값이 없는 경우 사용한다.
문제218.
이름과 부서위치를 출력하는데
using 절을 사용한 조인으로 수행하시오
select E.ename, D.loc
from emp E join dept D
using (deptno);
***주의사항
USING 뒤 괄호안에
테이블 지칭 쓰면 에러남.
using(E.deptno)
*현업에서 거의 안씀.
문제219.
이름과 부서위치를 출력하는데
natural join 으로 수행하시오
select E.ename, D.loc
from emp E natural join dept D;
**on, where 안써도 중복값 알아서 제거.
**현업에서 거의 안씀
■ 조인문법의 종류 2가지(페이지 239)
1. 오라클 조인문법
-EQUI JOIN (= inner join )
-NO EQUI JOIN
-OUTER JOIN
-SELF JOIN
2. 1999 ANSI 문법
-on 절을 사용한 조인 문법
-left, right, full outer 조인 문법
-using 절을 사용한 조인 문법
-natural join
-cross join
문제220.
아래의 cross join 을 오라클 조인문법으로
수행해보시오
select E.ename, D.loc
from emp E cross join dept D;
화면 캡처: 2018-10-22 오후 2:51
연결고리(where~ = ) 안 넣어준 것과 같이
중복값 다 나옴.
select E.ename, D.loc
from emp E, dept D;
| |
select E.ename, D.loc
from emp E cross join dept D;
문제221.
부서위치, 부서위치별 토탈월급을 출력하는데
부서위치가 BOSTON 도 출력되게 하고
부서위치가 CHICAGO 는 제외하고 출력하고
토탈월급이 4000 이상인것만 출력하고
토탈월급이 높은것부터 출력하는데
null 을 맨 뒤에 출력되게 하시오
select D.loc, sum(E.sal)토탈월급
from emp E , dept D
where E.deptno(+) = D.deptno
and
D.loc != 'CICHAGO'
group by rollup(D.loc)
having sum(E.sal) >= 4000
order by sum(E.sal) desc nulls last;
문제222.
부서위치, 부서위치별 인원수를 출력하는데
부서위치별 인원수가 3명 이상인것만
출력하시오
select D.loc, count(*)
from emp E, dept D
where E.deptno = D.deptno
group by D.loc
having count(*) >= 3;
문제223.
부서위치, 부서위치별 인원수를 출력하는데
아래와 같이 가로로 출력하시오
select
count(decode(D.loc, 'NEW YORK', 1, null) ) as "NEW YORK",
count(decode(D.loc, 'DALLAS', 1, null) ) as "DALLAS",
count(decode(D.loc,'CHICAGO', 1, null)) as "CHICAGO",
count(decode(D.loc, 'BOSTON',1,null)) as "BOSTON"
from emp E, dept D
where E.deptno = D.deptno;
**sum 으로 하면 null 로 해서
시카고, 보스톤은 null 로 나옴
문제224.
위의 결과를 아래와 같이 출력하시오
select E.job,
count(decode(D.loc, 'NEW YORK', 1, null) ) as "NEW YORK",
count(decode(D.loc, 'DALLAS', 1, null) ) as "DALLAS",
count(decode(D.loc,'CHICAGO', 1, null)) as "CHICAGO",
count(decode(D.loc, 'BOSTON',1,null)) as "BOSTON"
from emp E, dept D
where E.deptno = D.deptno
group by E.job;
문제225. 위의 결과에서 토탈값 넣어서 출력하시오
select nvl(E.job, '토탈값') as JOB,
count(decode(D.loc, 'NEW YORK', 1, null) ) as "NEW YORK",
count(decode(D.loc, 'DALLAS', 1, null) ) as "DALLAS",
count(decode(D.loc,'CHICAGO', 1, null)) as "CHICAGO",
count(decode(D.loc, 'BOSTON',1,null)) as "BOSTON"
from emp E, dept D
where E.deptno = D.deptno
group by rollup(E.job);
문제226.
아래의 통신사 테이블 생성하시오
create table telecom_price
( telecom_id number(10),
telecom_name varchar2(20),
month_price number(10) ) ;
insert into telecom_price values (1, 'sk', 56000);
insert into telecom_price values (2, 'lg', 54000);
insert into telecom_price values (3, 'kt', 52000);
insert into telecom_price values (4, 'cj hello', 50000);
commit;
문제227.
이름, 나이, 통신사, 월정액(month_price)을 출력하시오
select E2.ename, E2.age, lower(E2.telecom), TP.month_price
from emp2 E2, telecom_price TP
where lower(E2.telecom) = TP.telecom_name;
■ 7장. subquery (227페이지)
■SUBQUERY 활용
*subquery 를 배워야 하는 이유 ?
ALIAS 지정값 활용 및
필요 컬럼만 출력하고자 할 때.
사원테이블에서 가장 많은 월급을 받는
사원의 이름과 월급을
출력하시오(rank 이용하지 말고)
내 오답
select * from
(
select ename, sal, max(sal)over() from emp
)
where sal?????
select ename, max(sal) from emp; --->수행안됨
그래서
subquery 를 배워야 한다.
문제228.
JONES의 월급을 출력하시오
select sal
from emp
where ename= 'JONES';
문제229.
JONES 의 월급보다 더 많은 월급을 받는
사원들의
이름과 월급을 출력하시오
select ename, sal
from emp
where sal> 2975 ;
228, 229번 두번 수행해서 알아낼 값을
서브쿼리로 한번에 !
select ename, sal
from emp
where sal > ( select sal from emp
where ename = 'JONES' );
**SAL > 이하 괄호들을 SUBQEURY 라고 한다.
실행순서: 서브쿼리 먼저.
문제230.
SCOTT 과 같은 월급을 받는 사원들의
이름과 월급을 출력하시오
(SCOTT 안나오게 해보시오)
select ename, sal
from emp
where sal = (select sal from emp
where ename = 'SCOTT')
and
ename != 'SCOTT';
문제231.
최대월급을 받는 사원의
이름과 월급을 구하시오
select ename, sal
from emp
where sal=(select max(sal) from emp);
문제232.
서울시 물가 데이터 중
가장 가격이 높은 생필품의
이름과 가격과 파는 매장을 출력하시오.
*내가 가지고 있는 테이블 리스트 확인
select table_name
from user_tables;
또는
select * from price;
select a_name, a_price, m_name
from price
where a_price=
(select max(a_price) from price);
문제233.
가정불화로 생기는 범죄중에
가장 많이 발생하는 범죄가 무엇인가
(select * from crime_cause2;)
쌤답
select crime_type from crime_cause2
where cnt=
(select max(cnt) from crime_cause2
where term='가정불화');
문제234.
병원에서 많이 발생하는 범죄유형이
무엇인지 출력하시오
( crime_loc2 사용)
select crime_type from crime_loc2
where cnt=
(select max(cnt) from crime_loc2
where c_loc = '병원');
문제235.
30번 부서번호에서 가장 많은
월급을 받는 사원의 이름과
그 월급을 출력하시오
select ename, sal
from emp
where sal =
(select max(sal) from emp
where deptno = 30)
and
deptno = 30
and 붙이고 안붙이고의 차이가 없는데
선생님말로는
다른부서 최대값도 나온다고 함
난 잘 이해가 안됨.
소현설명:
서브쿼리 값이 만약 3천이면
결국 where sal=(3000) 이란 소리다.
그럼 다른부서의 sal 3000 도 출력된다는 얘기.
car_accident.csv 를 오라클 데이터베이스에
입력하시오
create table car_accident
( a_year number(10),
a_loc varchar2(20),
a_loc2 varchar2(100),
a_cnt number(10),
a_type varchar2(20) );
쌤꺼 오라클gate2010 깔아서
car_accident 불러오기 성고옹
문제236.(오늘의 마지막 문제)
서울시에서 교통사고가 가장 많이
일어나는 지역이 어디인지
알아내시오
select A_loc2 from car_accident
where A_cnt=(
select max(A_cnt) from car_accident);
'sql' 카테고리의 다른 글
10. 집합연산자 (0) | 2019.03.30 |
---|---|
9. SUBQUERY (0) | 2019.03.30 |
7. DATA 분석함수(rank, dens_rank, listagg, ntile, lead, lag) (0) | 2019.03.30 |
6. 그룹함수 (0) | 2019.03.30 |
5. NVL, DECODE, CASE (0) | 2019.03.30 |