1 분 소요

오늘 배운 것

  1. html의 스크립트를 작성할 때 스크립트는 type에 따라 여러 종류 작성할 수 있음을 알았다. 이 때 그냥 적는 것과 module 값을 적을 때의 값이 다르기에 용법을 잘 알아야 하고, 데이터를 불러오는 순서도 파악할 수 있어야만 한다.

  2. join을 이용해서 문제룰 푸는 것을 배웠다. 이걸로 잠시 두고 있던 SQL 문제를 풀 수 있게 되었다.

10번 문제

1. 현재 있는 총 부서의 수를 구하는 쿼리

= select count(name) from departments;

2. 각 직원들이 어느 부서에 소속되어 있는지 나열

- select e.name, d.name

from employees e

inner join departments d

on e.department_id = d.id;

3. 기술팀 부서에 속한 사람들 나열

select e.name

from employees e

inner join departments d

on e.department_id = d.id

where d.name = “기술팀”;

4. 각 부서 별로 사람이 얼마나 되는지 나열

select d.name, count(e.name)

from employees e

inner join departments d

on e.department_id = d.id

group by d.name;

5. 직원이 없는 부서의 이름을 나열하기

select sol.dep_name

from

(

select d.name as dep_name, count(e.name) as emp_count

from departments d

left join employees e

on d.id = e.department_id

group by d.name

) as sol

where sol.emp_count = 0;

6 마케팅 팀 부서에만 속한 사원 이름 나열하기

select e.name as emp_name from departments d inner join employees e on d.id = e.department_id where d.name not in (select d.name from departments where d.name != “마케팅팀”);

마지막 문제

  1. 모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!

select o.product_id, p.name from products p inner join orders o on p.id = o.product_id;

  1. 총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!

select sol.pname, max(sol.sum_p) from ( select p.name as pname, (p.price * o.quantity) as sum_p from orders o join products p on p.id = o.product_id ) as sol group by sol.pname limit 1;

  1. 각 상품 ID별로 판매된 총 수량(quantity)을 계산하는 쿼리를 작성해주세요!

  2. 2023년 3월 3일 이후에 주문된 모든 상품의 이름을 나열하는 쿼리를 작성해주세요!

  3. 가장 많이 판매된 상품의 이름을 찾는 쿼리를 작성해주세요!

  4. 각 상품 ID별로 평균 주문 수량을 계산하는 쿼리를 작성해주세요!

  5. 판매되지 않은 상품의 ID와 이름을 찾는 쿼리를 작성해주세요!

카테고리:

업데이트: