이제, 아래와 같은 doctors(의사) 테이블이 있습니다.
id | name | major | hire_date |
---|---|---|---|
1 | 르탄이 | 피부과 | 2018-05-10 |
2 | 배캠이 | 성형외과 | 2019-06-15 |
3 | 구구이 | 안과 | 2020-07-20 |
doctors
테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!SELECT name
FROM doctors
WHERE major = '성형외과'
doctors
테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!SELECT major,
COUNT(*)
FROM doctors
GROUP BY 1
doctors
테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요!⬇️ 내가 작성한 것
SELECT COUNT(*) AS cnt_doctors
FROM doctors
WHERE DATEDIFF('2025-02-07', hire_date) >= 5 * 365
⬇️ 정답
SELECT COUNT(*) AS cnt_doctors
FROM doctors
WHERE hire_date <= DATE_SUB(CURDATE(), INTERVAL 5 YEAR)
특정 날짜에서 지정한 기간(년, 월, 일 등)을 빼는 MySQL 함수
DATE_SUB(날짜, INTERVAL 빼고 싶은 값 단위)
사용가능 단위
YEAR
, MONTH
, DAY
, HOUR
, MINUTE
, SECOND
조합해서도 사용 가능
ex) 2 YEAR 3 MONTH 10 DAY 5 HOUR
doctors
테이블에서 각 의사의 근무 기간을 계산하는 쿼리를 작성해주세요!SELECT name,
DATEDIFF(CURDATE(), hire_date) AS work_days
FROM doctors