수강한 강의
Part 4. SQL
Chapter 04 문제풀이
- 조인(inner join)
- 조인(outer join)
학습 후기
1. left outer join 문제
2020년 1월의 제품 별 생산량의 순위를 확인하기 위하여 제품명과 생산량을 순위를 매겨 출력하시오.
(모든 제품이 출력되어야 하며 공동 순위가 있다면 다음 순위는 공동 순위의 수만큼 밀려나고 생산되지 않은 제품
은 제일 마지막 순위로 결정되어야 한다)
null을 가장 마지막 순위로 결정하기 위해 order by에 nulls last를 추가해준다.
select * from titem;
select * from tproduction;
select
i.iname,
p.pcount,
rank() over (order by p.pcount desc nulls last)
from
titem i
left outer join tproduction p
on i.inumber = p.inumber
and to_char(p.pdate, 'MM') = '01';
2. inner join 문제
부서별로 생산하는 제품들의 총생산량을 부서명과 함께 순위를 매겨서 출력하세요
(부서명, 부서에서 생산하는 제품의 총 생산량, 순위가 나와야 하며 공동 순위(ex 공동 1등)가 있어도 다음 순위는 순차적으로 매겨진다.
select * from tdepartment;
select * from tproduction;
select * from temployee;
select
d.dname,
sum(p.pcount),
row_number () over (order by sum(p.pcount) desc)
from
tproduction p
inner join temployee e
on p.enumber = e.enumber
inner join tdepartment d
on d.dnumber = e.dnumber
group by d.dname;
3. outer join 문제
시장조사를 위하여 불량을 제외한 반품 내역을 가진 고객들의 주변에 거주하는 직원들의 명단을 출력하시오
(고객들의 주소와 고객명단, 고객 주변에 거주하는 직원 명단은 전부 출력되어야 한다)
select * from temployee;
select * from torder;
select * from tcustomer;
select * from treturn;
select * from treturnreason;
select
a.caddr,
a.cname,
b.ename
from
(
select
*
from
torder o
inner join tcustomer c
on o.cnumber = c.cnumber
inner join treturn r
on o.onumber = r.onumber
inner join treturnreason rr
on r.rrnumber = rr.rrnumber
where rr.rreason <> '불량'
) a
left outer join temployee b
on a.caddr = b.eaddr;
수강 인증샷
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
반응형
'공부 > 패스트 캠퍼스 챌린지' 카테고리의 다른 글
코딩테스트 - 패스트캠퍼스 챌린지 48일차 (0) | 2022.03.12 |
---|---|
코딩테스트 - 패스트캠퍼스 챌린지 47일차 (0) | 2022.03.11 |
코딩테스트 - 패스트캠퍼스 챌린지 45일차 (0) | 2022.03.09 |
코딩테스트 - 패스트캠퍼스 챌린지 44일차 (0) | 2022.03.08 |
코딩테스트 - 패스트캠퍼스 챌린지 43일차 (0) | 2022.03.07 |