728x90
30. doctors 테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!
SELECT name FROM doctors WHERE major = ‘성형외과’; |
31. doctors 테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!
SELECT major, COUNT(*) AS doctor_count FROM doctors GROUP BY major; |
32. doctors 테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요!
SELECT COUNT(*) AS doctor_count FROM doctors WHERE hire_date <= DATE_SUB(CURDATE(), INTERVAL 5 YEAR); |
33. doctors 테이블에서 각 의사의 근무 기간을 계산하는 쿼리를 작성해주세요!
SELECT name, SYSDATE - hire_date AS days_worked FROM doctors; |
풀이
32번
INTERVAL 함수 : 날짜를 더하고 빼는 연산식
SELECT SYSDATE - (INTERVAL '2' YEAR) MINUS_YEAR , SYSDATE + (INTERVAL '2' YEAR) ADD_YEAR FROM DUAL |
/* SELECT COUNT(*) FROM doctors WHERE EXTRACT(YEAR FROM SYSDATE) - EXTRACT(YEAR FROM hire_date) >= 5; */ --위 아래 같은 내용 SELECT COUNT(*) AS doctor_count FROM doctors WHERE hire_date <= DATE_SUB(CURDATE(), INTERVAL 5 YEAR); |
※ INTERVAL 활용 방법
SYSDATE + (INTERVAL '1' YEAR) --1년 더하기 SYSDATE + (INTERVAL '1' MONTH) --1개월 더하기 SYSDATE + (INTERVAL '1' DAY) --1일 더하기 SYSDATE + (INTERVAL '1' HOUR) --1시간 더하기 SYSDATE + (INTERVAL '1' MINUTE) --1분 더하기 SYSDATE + (INTERVAL '1' SECOND) --1초 더하기 SYSDATE + (INTERVAL '02:10' HOUR TO MINUTE) --2시간10분 더하기 SYSDATE + (INTERVAL '01:30' MINUTE TO SECOND) --1분30초 더하기 |
※ 현재 일시에서 2년 빼기
SELECT ‘current_time’ t , SYSDATE dat FROM dual --현재일시 UNION ALL SELECT ‘intrtval’, SYSDATE - (INTERVAL ‘2’ YEAR) FROM dual --2년 빼기 UNION ALL SELECT ‘add_months ()’ , ADD_MONTHS (SYSDATE, -24) FROM dual --24개월 빼기 UNION ALL SELECT ‘sysdate – day’ , SYSDATA - 730 FROM dual --730일 빼기 |
출력
t | dte |
current_time | 2024-10-21 |
intrtval | 2022-10-21 |
add_months () | 2022-10-21 |
sysdate – day | 2022-10-21 |
※ 여러 테이블의 합집합 출력 (https://blog.naver.com/jeong2091/222816095789)
--컬럼명 Alias는 상위에 있는 쿼리만 먹음
UNION : 컬럼의 개수와 데이터 타입이 일치, 중복 데이터 제거, 많은 데이터 처리 시 느려짐
SELECT 컬럼1, 컬럼2
FROM 테이블1
UNION
SELECT 컬럼1, 컬럼2
FROM 테이블2
UNION ALL : 컬럼의 개수와 데이터 타입이 일치,
SELECT 컬럼1, 컬럼2
FROM 테이블1
UNION
SELECT 컬럼1, 컬럼2
FROM 테이블2
출처
32번 : https://gent.tistory.com/64, https://ws-pace.tistory.com/137
'내일배움 과제 > 기타 과제' 카테고리의 다른 글
걷기 SQL - 10) 이젠 테이블이 2개입니다 (0) | 2024.10.21 |
---|---|
걷기 SQL - 9)아프면 안됩니다! 항상 건강 챙기세요! (0) | 2024.10.21 |
걷기반 SQL - 7) 랭크게임 하다가 싸워서 피드백 남겼어요… (0) | 2024.10.18 |
걷기반 SQL - 6) 팀 프로젝트 열심히 했으니 다시 놀아볼까요?! (0) | 2024.10.18 |
걷기반 SQL - 5) 공부하다보니 팀 프로젝트 시간이 왔어요! (0) | 2024.10.17 |