Post

퀘스트 - 걷기반 8) LOL을 하다가 홧병이 나서 병원을 찾아왔습니다.

퀘스트 - 걷기반 8) LOL을 하다가 홧병이 나서 병원을 찾아왔습니다.

문제

이제, 아래와 같은 doctors(의사) 테이블이 있습니다.

idnamemajorhire_date
1르탄이피부과2018-05-10
2배캠이성형외과2019-06-15
3구구이안과2020-07-20

30. doctors테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!
31. doctors테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!
32. doctors테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요!
33. doctors테이블에서 각 의사의 근무 기간을 계산하는 쿼리를 작성해주세요!




문제 풀이

30. doctors테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!

1
2
3
select name
from doctors
where major='성형외과';


31. doctors테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!

1
2
3
4
select name,
       count(*) cnt_doctor
from doctors
group by major;


32. doctors테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요!

1
2
3
select count(*) num_of_docter
from doctors
where hire_date <= date_sub(curdate(), interval 5 year);
  • INTERVAL은 일, 시간, 분 등 날짜 및 시간 값과 연산할 때 사용되는 문법입니다
  • DATE_ADD로 날을 더하거나 DATE_SUB로 뺄 수 있습니다


33. doctors테이블에서 각 의사의 근무 기간을 계산하는 쿼리를 작성해주세요!

1
2
3
select name,
       datediff(curdate(), hire_date) work_days
from doctors;
  • DATEDIFF(expr1, expr2)expr1 - expr2를 계산합니다
This post is licensed under CC BY 4.0 by the author.