Q9) 아프면 안됩니다! 항상 건강 챙기세요!
의사가 있으면 당연히 의사에게 진료받는 환자가 있겠죠? 아래와 같은 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)에 따른 환자 수를 계산하는 쿼리를 작성해주세요!
더보기
SELECT gender, COUNT(*) FROM patients GROUP BY gender
35. patients 테이블에서 현재 나이가 40세 이상인 환자들의 수를 계산하는 쿼리를 작성해주세요!
더보기
SELECT COUNT(*) FROM patients WHERE birth_date <= DATE_SUB(CURDATE(), INTERVAL 40 YEAR)
36. patients 테이블에서 마지막 방문 날짜(last_visit_date)가 1년 이상 된 환자들을 선택하는 쿼리를 작성해주세요!
더보기
SELECT * FROM patients WHERE last_visit_date <= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)
37. patients 테이블에서 생년월일이 1980년대인 환자들의 수를 계산하는 쿼리를 작성해주세요!
더보기
SELECT COUNT(*) FROM patients WHERE birth_date LIKE '198%'
핵심 개념 정리
🔹 35번 & 36번 쿼리에서 사용된 핵심 문법 정리
✅ 현재 나이가 40세 이상인 환자 수 계산
WHERE birth_date <= DATE_SUB(CURDATE(), INTERVAL 40 YEAR)
✅ 마지막 방문 날짜가 1년 이상 된 환자 선택
WHERE last_visit_date <= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)
- CURDATE(): 현재 날짜를 반환
- DATE_SUB(date, INTERVAL expr unit): 지정된 날짜에서 주어진 간격만큼 빼는 함수
- WHERE birth_date <= DATE_SUB(CURDATE(), INTERVAL 40 YEAR): 현재 날짜에서 40년을 빼고, birth_date가 그 날짜보다 이전인 환자들을 선택합니다. 이를 통해 40세 이상인 환자를 찾습니다.
- WHERE last_visit_date <= DATE_SUB(CURDATE(), INTERVAL 1 YEAR): last_visit_date가 현재 날짜에서 1년을 뺀 날짜 이전인 환자들을 선택합니다.
'PM > SQL' 카테고리의 다른 글
[내일배움캠프 TIL] 사전캠프 12일차 SQL 기초(완) (0) | 2025.03.25 |
---|---|
[내일배움캠프 TIL] 사전캠프 11일차 SQL 기초(10) (1) | 2025.03.24 |
[내일배움캠프 TIL] 사전캠프 9일차 SQL 기초(8) (1) | 2025.03.20 |
[내일배움캠프 TIL] 사전캠프 8일차 SQL 기초(7) (0) | 2025.03.19 |
[내일배움캠프 TIL] 사전캠프 7일차 SQL 기초(6) (0) | 2025.03.18 |