내일배움캠프 STEP 2. 속도에 맞춰 나아가기/SQL 기초

8. LOL을 하다가 홧병이 나서 병원을 찾아왔습니다.

김호진02 2024. 10. 18. 14:59

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

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

 

30번 문제

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

 

조건 1. 전공이 성형외과인 의사 이름 알아내기!(WHERE)

답)

SELECT name

FROM doctors

WHERE major='성형외과';

 

31번 문제

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

 

조건 1. 각 전공별(GROUP BY)

조건 2. 의사 수(SUM())

답)

SELECT major, SUM(name) '의사 수'

FROM doctors

GROUP BY 1;

 

32번 문제

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

 

조건1. 5년 이상 근무(WHERE)

조건1. 의사 수(SUM())

답)

SELECT SUM(name)

FROM doctors

WHERE DATEDIFF(CURDATE(), hire_date) > 365*5;

 

 *** DATEDIFF(날짜1,날짜2) : 날짜1에서 날짜2을 뺀 일 수 계산 함수.

 *** CURDATE() : 오늘 날짜

 

33번 문제

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

 

조건1. 각 의사의 근무 기간 계산( DATEDIFF(날짜1,날짜2))

답)

SELECT name,

CONCAT(DATEDIFF(CURDATE(), hire_date)/12,' 개월') AS '근무 개월',

CONCAT(DATEDIFF(CURDATE(), hire_date),' 개월') AS '근무 일수'

FROM doctors;