내일배움캠프/사전캠프 퀘스트 9

[내일배움캠프]_달리기반 Lv5

1. 각 직원이 속한 부서에서 가장 높은 월급을 받는 직원들만 포함된 결과를 조회하는 SQL 쿼리를 작성해주세요.select e.Name,           e.Department,           e.Salary  from employees e where e.Salary = (                  select max(e2.Salary)                  from employees e2                   where e2.Department = e.Department                  )- where절의 서브커리의 where은 주커리의 Department와 연결하며 주커리가 서브커리를 고려하여 출력하게 함2. 직원이 참여한 프로젝트 중 예산이 10,000..

[내일배움캠프]_달리기반 Lv5

가장 많이 팔린 품목은?1. 각 고객이 구매한 모든 제품의 총 금액을 계산하고, 고객 이름, 총 구매 금액, 주문 수를 출력하는 SQL 쿼리를 작성해주세요.select a.CustomerName,        b.TotalAmount,        a.OrderCount from  (       select C.CustomerName,                  O.CustomerID,                  count(O.Quantity) as OrderCount       from customers c        join orders o on C.CustomerID = O.CustomerID        group by C.CustomerName, O.CustomerID ) a  join..

[내일배움캠프]_달리기반 LV4

[단골고객 찾기]1.) 고객별로 주문 건수와 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요- 고객별 주문건수, 총 주문금액 조회 - 출력 컬럼 [고객이름(커스터머), 주문건수(오더), 총 주문금액(sum 오더)] 단, 주문안한 고객도 포함 select c.CustomerName,         count(o.CustomerID) as OrderCount,          coalesce(sum(o.TotalAmount), 0) as TotalSpent from customers c left join orders o on c.CustomerID = o.CustomerID  group by c.CustomerName   - coalesce를 사용해 주문을 안한 사람의 걘 null이 아닌 0으로 출력  ..

[내일배움캠프]_달리기반 1-3

SELECT COUNT(SUBSTR(name,1,1)) as name_cut FROM users u where name like '김%' - name컬럼에서 성 부분만 조회/카운트 ,  where 김으로 조건 부여(왜인지 '김'으로 하면 안나오드라)SELECT SUM(name like '김%') as name_cut FROM users u  - sunstr사용안하고 like 사용해서 김**의 수만 합침SELECT count(distinct(user_id)) as name_cnt FROM      users where substr(name,1,1) = '김' - user_id카운트/ name앞글자만 조회하고 거기서 김인 id인 조건부여결론: 상관은 없다 다만 3번째 거는 고유 id의 수를 셈 1,2번은 김..

[내일배움캠프]_사전캠 SQL 퀘스트 5일차

12/344) select o.id, p.name  from products p join orders o on p.id=o.product_id  45) select p.id,        sum(p.price*o.quantity) as all_sales from products p join orders o on p.id=o.product_id  group by 1 order by 2 desc limit 1 46) select p.id,        sum(o.quantity)  from products p join orders o on p.id=o.product_id  group by p.id  47) select p.name  from products p join orders o on p.id=o.pr..

[내일배움캠프]_사전캠 SQL 퀘스트 4일차

38) 현재 존재하고 있는 총 부서의 수를 구하는 쿼리를 작성해주세요! SELECT COUNT(D.NAME)  FROM DEPARTMENTS D 39) 모든 직원과 그들이 속한 부서의 이름을 나열하는 쿼리를 작성해주세요! SELECT e.name ,        d.name  department FROM employees e inner join departments d  on e.department_id = d.id 40) '기술팀' 부서에 속한 직원들의 이름을 나열하는 쿼리를 작성해주세요! SELECT e.name FROM employees e inner join departments d  on e.department_id = d.id  where d.name = '기술팀' 41) 부서별로 직원 수를 ..

[내일배움캠프]_사전캠 SQL 퀘스트 3일차

30) doctors 테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요! select name from doctors  where major = '성형외과' 31) doctors 테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요! select major,        count(1) count_of_major from doctors  group by 132) doctors 테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요! select count(1) as 5_years_or_more  from doctors  where datediff(curdate(), hire_date) >= 5 * 36533) ..

[내일배움캠프]_사전캠 SQL 퀘스트 2일차

21) lol_users 테이블에서 각 유저의 레이팅(rating) 순위를 계산하는 쿼리를 작성해주세요! 전체 지역(region) 기준이고 순위는 레이팅이 높을수록 높아야해요. (e.g. rating 1400 유저의 순위 > rating 1350 유저의 순위)select *,        rank() over (order by rating desc) ranking from lol_users 22) lol_users  테이블에서 가장 늦게 게임을 시작한(join_date) 유저의 이름을 선택하는 쿼리를 작성해주세요select name,        join_date from ( select name,        join_date,        rank() over (order by join_date d..

[내일배움캠프]_사전캠 SQL 퀘스트 1일차

1. sparta_emplotees 테이블에서 모든 직원의 이름(name)과 직급(position)을 선택하는 쿼리를 작성해주세요.select name,            position from sparta_emplotees 2. sparta_emplotees 테이블에서 중복 없이 모든 직급(position)을 선택하는 쿼리를 작성해주세요.select distinct position from sparta_emplotees 3. sparta_emplotees  테이블에서 연봉(salary)이 40000과 60000 사이인 직원들을 선택하는 쿼리를 작성해주세요.select * from sparta_employees where salary between 40000 and 60000 4. sparta_emp..