30) doctors 테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!
select name
from doctors
where major = '성형외과'
31) doctors 테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!
select major,
count(1) count_of_major
from doctors
group by 1
32) doctors 테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요!
select count(1) as 5_years_or_more
from doctors
where datediff(curdate(), hire_date) >= 5 * 365
33) doctors 테이블에서 각 의사의 근무 기간을 계산하는 쿼리를 작성해주세요!
select name,
datediff(curdate(), hire_date) working_period
from doctors
34) patients 테이블에서 각 성별(gender)에 따른 환자 수를 계산하는 쿼리를 작성해주세요!
select gender,
count(gender)
from patients
group by gender
35) patients 테이블에서 현재 나이가 40세 이상인 환자들의 수를 계산하는 쿼리를 작성해주세요!
select *
from patients
where year(curdate())-year(birth_date) -
case when month(curdate()) < month(birth_date) or
(month(curdate()) = month(birth_date) and day(curdate()) < day(birth_date))
then 1
else 0 end >=40
-- 이건 40세 이상인 사람을 출력하는건데... 적은것도 드럽게 복잡하게 작성했네
36) patients 테이블에서 마지막 방문 날짜(last_visit_date)가 1년 이상 된 환자들을 선택하는 쿼리를 작성해주세요!
SELECT *
FROM patients
WHERE last_visit_date <= DATE_SUB(CURDATE(), interval 1 year)
- DATE_SUB = 날짜, 시간 빼기
- CURDATE = 현재 날짜 출력
- INTERVAL = 기간
37) patients 테이블에서 생년월일이 1980년대인 환자들의 수를 계산하는 쿼리를 작성해주세요!
SELECT COUNT(BIRTH_DATE) 1980_birth
FROM patients
WHERE SUBSTR(BIRTH_DATE,1,4) between 1980 and 1989
- birth-date 필드가 날짜형식으로 되있다면 year을 사용해도됨
WHERE YEAR(BIRTH_DATE) BETWEEN 1980 AND 1989
'내일배움캠프 > 사전캠프 퀘스트' 카테고리의 다른 글
[내일배움캠프]_달리기반 1-3 (0) | 2024.12.04 |
---|---|
[내일배움캠프]_사전캠 SQL 퀘스트 5일차 (0) | 2024.12.04 |
[내일배움캠프]_사전캠 SQL 퀘스트 4일차 (0) | 2024.12.02 |
[내일배움캠프]_사전캠 SQL 퀘스트 2일차 (1) | 2024.11.28 |
[내일배움캠프]_사전캠 SQL 퀘스트 1일차 (0) | 2024.11.28 |