SMALL
[TIL]
SQL
[퀘스트]
8) LOL을 하다가 홧병이 나서 병원을 찾아왔습니다.
#**`doctors`** 테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!
SELECT name
FROM doctors
WHERE major = '성형외과';
#**`doctors`** 테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!
SELECT major, COUNT(*) AS '전공 별 의사 수'
FROM doctors
GROUP BY major;
#**`doctors`** 테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요!
SELECT COUNT(*) AS '5년 이상 근무자'
FROM doctors
WHERE DATEDIFF(CURDATE(), hire_date) >= 5 * 365;
#**`doctors`** 테이블에서 각 의사의 근무 기간을 계산하는 쿼리를 작성해주세요!
SELECT name, DATEDIFF(CURDATE(), hire_date) AS '근무기간'
FROM doctors;
9) 아프면 안됩니다! 항상 건강 챙기세요!
#**`patients`** 테이블에서 각 성별(gender)에 따른 환자 수를 계산하는 쿼리를 작성해주세요!
SELECT gender, COUNT(*)
FROM patients
GROUP BY gender;
#**`patients`** 테이블에서 현재 나이가 40세 이상인 환자들의 수를 계산하는 쿼리를 작성해주세요!
SELECT COUNT(*)
FROM patients
WHERE YEAR(CURDATE()) - YEAR(birth_date) >= 40;
#**`patients`** 테이블에서 마지막 방문 날짜(last_visit_date)가 1년 이상 된 환자들을 선택하는 쿼리를 작성해주세요!
SELECT *
FROM patients
WHERE DATEDIFF(CURDATE(), last_visit_date) >= 365;
#**`patients`** 테이블에서 생년월일이 1980년대인 환자들의 수를 계산하는 쿼리를 작성해주세요!
SELECT COUNT(*)
FROM patients
WHERE birth_date
BETWEEN '1980-01-01' AND '1989-12-31';
DATEDIFF() 함수
용도: 두 날짜 사이의 일 수 차이를 구할 때 사용됩니다.
구문:
DATEDIFF(date1, date2) #date1 : 첫 번째 날짜, date2 : 두 번째 날짜
설명:
- DATEDIFF(date1, date2)는 date1에서 date2를 뺀 일 수 차이를 반환합니다.
- 반환값은 양의 정수, 음의 정수, 0일 수 있습니다. 결과 값은 일 수로 표현되며, 날짜 차이를 하루 단위로 반환합니다.
- date1이 date2보다 나중이면 양수, date2가 date1보다 나중이면 음수가 반환됩니다.
예시:
SELECT DATEDIFF('2024-11-11', '2024-11-01');
#결과: 10 (2024년 11월 11일에서 2024년 11월 1일까지의 일수 차이)
TIMESTAMPDIFF() 함수
용도: 두 날짜 사이의 특정 단위(년, 월, 일 등) 차이를 구할 때 사용됩니다.
구문:
TIMESTAMPDIFF(unit, date1, date2)
- unit: 날짜 차이를 구할 때 사용할 단위입니다. 예를 들어, YEAR, MONTH, DAY, HOUR, MINUTE, SECOND 등을 사용할 수 있습니다.
- date1: 첫 번째 날짜.
- date2: 두 번째 날짜.
- 설명:
- TIMESTAMPDIFF(unit, date1, date2)는 두 날짜 사이의 차이를 특정 단위로 계산한 값을 반환합니다.
- 반환 값은 단위에 따라 다르며, 연도, 월, 일, 시간, 분, 초 등으로 날짜 차이를 계산할 수 있습니다.
- 이 함수는 date1이 date2보다 나중일 때 음수 값을 반환하고, 그 반대일 경우 양수 값을 반환합니다.
- YEAR: 연도 차이
- MONTH: 월 차이
- DAY: 일 차이
- HOUR: 시간 차이
- MINUTE: 분 차이
- SECOND: 초 차이
예시:
SELECT TIMESTAMPDIFF(YEAR, '2018-05-10', '2024-11-11');
#결과: 6 (두 날짜 간의 연도 차이는 6년)
SELECT TIMESTAMPDIFF(MONTH, '2018-05-10', '2024-11-11');
#결과: 78 (두 날짜 간의 월 차이는 78개월)
SELECT TIMESTAMPDIFF(DAY, '2024-11-01', '2024-11-11');
#결과: 10 (두 날짜 간의 일 차이는 10일)
SELECT TIMESTAMPDIFF(HOUR, '2024-11-01 10:00:00', '2024-11-11 10:00:00');
#결과: 240 (두 날짜 간의 시간 차이는 240시간)
TIMESTAMPDIFF vs DATEDIFF 차이점
- 단위: DATEDIFF()는 일수만 계산할 수 있는 반면, TIMESTAMPDIFF()는 연도, 월, 일, 시간, 분, 초 등 다양한 단위로 날짜 차이를 계산할 수 있습니다.
- 출력값: DATEDIFF()는 항상 일 단위로 결과를 반환하는 반면, TIMESTAMPDIFF()는 지정된 단위(예: YEAR, MONTH, DAY 등)로 결과를 반환합니다.
- 정밀도: TIMESTAMPDIFF()는 정확한 단위 차이를 계산할 수 있지만, DATEDIFF()는 단순히 일 수 차이만 계산합니다.
LIST
'Today I learned' 카테고리의 다른 글
2024.11.12 TIL(AI 9기) (0) | 2024.11.12 |
---|---|
Pythone3 Day 1 출력 문제 (0) | 2024.11.12 |
2024.11.10 TIL(주말) (0) | 2024.11.10 |
2024.11.08 TIL(AI 9기) (3) | 2024.11.08 |
본캠프 커리큘럼 (0) | 2024.11.08 |