Quest/SQL

SQL Quest 걷기반 - 9)

beady 2024. 11. 13. 18:39

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

 

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 1

 

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

select count(*)
from patients
where floor((to_days(now())-to_days(birth_date))/365)>=40

 

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

select *
from patients
where to_days(now())-to_days(last_visit_date)>=365

 

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

select count(*)
from patients
where birth_date like '198%'

now() 지금 현재 시간(timestamp)
current_timestamp 지금 현재 시간(timestamp)
current_date 지금 현재 시간에서 연-월-일 날짜 정보만
current_time 지금 현재 시간에서 시간 정보만

 

TO_DAYS()

- 입력된 날짜를 0000년 1월 1일부터 1일 단위로 계산해 값을 리턴

- 날짜의 포맷 형식에 제한없이 동일한 값을 리턴

 

ROUND() : 반올림
ROUND(a, b) : 지정한 자릿수 반올림
CEIL() : 올림
FLOOR() : 소수 모두 버림
TRUNCATE(a, b) : 지정한 소수 자릿수 버림