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

9. 아프면 안됩니다! 항상 건강 챙기세요!

김호진02 2024. 10. 18. 15:17

의사가 있으면 당연히 의사에게 진료받는 환자가 있겠죠? 아래와 같은 patients(환자) 테이블이 있습니다.

id
name
birth_date
gender
last_visit_date
1
르탄이
1985-04-12
남자
2023-03-15
2
배캠이
1990-08-05
여자
2023-03-20
3
구구이
1982-12-02
여자
2023-02-18
4
이션이
1999-03-02
남자
2023-03-17

 

34번 문제

patients 테이블에서 각 성별(gender)에 따른 환자 수를 계산하는 쿼리를 작성해주세요!

 

조건1. 각 성별별 (GROUP BY)  환자 수(SUM()

답)

SELECT gender, SUM(name) '환자 수'

FROM patients

GROUP BY 1;

 

35번 문제

patients 테이블에서 현재 나이가 40세 이상인 환자들의 수를 계산하는 쿼리를 작성해주세요!

 

조건1. 나이가 40이상(WHERE) 의 환자수(SUM())

답)

SELECT SUM(name)

FROM patients

WHERE TIMESTAMPDIFF(YEAR,birth_date,CURDATE())>=40;

 

TIMESTAMPDIFF(unit,과거날짜, 최근날짜)

: 과거와 최근 날짜의 차를 unit(year,month,day,hour....)으로 지정된 단위로 반환.

 

36번 문제

patients 테이블에서 마지막 방문 날짜(last_visit_date)가 1년 이상 된 환자들을 선택하는 쿼리를 작성해주세요!

 

조건 1 마지막 방문 날짜가 1년 이상된 환자(WHERE)

답)

SELECT *

FROM patients

WHERE TIMESTAMPDIFF(YEAR, last_visit_date,CURDATE())>=1;

 

37번 문제

patients 테이블에서 생년월일이 1980년대인 환자들의 수를 계산하는 쿼리를 작성해주세요!

 

조건1) 생년월일이 1980년대인 (WHERE) 환자 수

답)

SELECT SUM(name);

FROM patients

WHERE birth_date like '198%';