🥑 학습내용
** 240906 업데이트 ) 오답수정 및 대체 가능 코드 추가
10) 이젠 테이블이 2개입니다
38
현재 존재하고 있는 총 부서의 수를 구하는 쿼리를 작성해주세요!
select count(distinct name)
from departments
39
모든 직원과 그들이 속한 부서의 이름을 나열하는 쿼리를 작성해주세요!
select e.name, d.name
from departments d left join employees e on d.id=e.department_id
** LEFT JOIN 대신 INNER JOIN을 사용해도 된다.
40
'기술팀' 부서에 속한 직원들의 이름을 나열하는 쿼리를 작성해주세요!
select e.name,d.name
from departments d left join employees e on d.id=e.department_id
where d.name='기술팀'
41
부서별로 직원 수를 계산하는 쿼리를 작성해주세요!
select d.name,count(1) "부서별 직원 수"
from departments d left join employees e on d.id=e.department_id
group by d.name
42
직원이 없는 부서의 이름을 찾는 쿼리를 작성해주세요!
select d.name
from departments d left join employees e on (d.id=e.department_id)
where e.department_id is NULL
43
'마케팅팀' 부서에만 속한 직원들의 이름을 나열하는 쿼리를 작성해주세요!
select e.name,d.name
from departments d left join employees e on (d.id=e.department_id)
where d.name='마케팅팀'
** INNER JOIN
11) 마지막 연습 문제
44
모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!
select o.id, p.name
from orders o left join products p on o.product_id=p.id
45
총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!
select p.id, sum(p.price*o.quantity) "총매출"
from orders o left join products p on o.product_id=p.id
group by p.id
order by sum(p.price*o.quantity) DESC
limit 1
46
각 상품 ID별로 판매된 총 수량(quantity)을 계산하는 쿼리를 작성해주세요!
select p.id, o.quantity sum(o.quantity) sum_q
from orders o left join products p on o.product_id=p.id
group by p.id
SELECT p.id, SUM(o.quantity) AS total_quantity
FROM products p INNER JOIN orders o ON p.id = o.product_id
GROUP BY p.id;
** 뭐야 풀다 졸았는지 총 수량도 못보고 상품 ID 별로(group by)로 묶지도 않았다.
47
2023년 3월 3일 이후에 주문된 모든 상품의 이름을 나열하는 쿼리를 작성해주세요!
select p.name,
o.order_date
from orders o left join products p on o.product_id=p.id
where o.order_date> '2023-03-03'
order by order_date
48
가장 많이 판매된 상품의 이름을 찾는 쿼리를 작성해주세요!
select p.name, o.quantity SUM(o.quantity) sum_q
from orders o left join products p on o.product_id=p.id
GROUP BY p.id
order by
sum_qDESC
limit 1
** 가장 많이 판매된 상품
49
각 상품 ID별로 평균 주문 수량을 계산하는 쿼리를 작성해주세요!
select p.id, avg(quantity) avg_qt
from orders o left join products p on o.product_id=p.id
group by p.id
50
판매되지 않은 상품의 ID와 이름을 찾는 쿼리를 작성해주세요!
select p.id, p.name
from oders o left join products p on o.product_id=p.id
where o.id is NULL
진짜 진땀 빼면서 풀었다...** 모르는 함수가 사용된 경우보다 문제를 정확하게 파악 하지 못해서 틀린 경우가 많다. 연습을 통해 문제를 정확하게 파악하고 풀어나가는 연습을 해야겠다.
'Data' 카테고리의 다른 글
[아티클스터디] 데이터 분석가는 어떤 일을 하는가? 요약 정리 (3) | 2024.09.06 |
---|---|
[Mysql] SQL 문법연습 사용된 명령어/문법/함수 총정리 (1) | 2024.09.06 |
[아티클 스터디] 데이터 분석이란 무엇일까? 주제 목차 (10) | 2024.09.04 |
[Mysql] SQL 문법 연습 풀이/order by, group by +업데이트 (3) | 2024.09.04 |
[Mysql] SQL 문법연습 걷기(1~6) +업데이트 (1) | 2024.09.03 |