SELECT b.CATEGORY, SUM(bs.SALES) AS TOTAL_SALES
FROM BOOK b
INNER JOIN BOOK_SALES bs ON b.BOOK_ID = bs.BOOK_ID
WHERE YEAR(bs.SALES_DATE) = '2022' AND MONTH(bs.SALES_DATE) = '1'
GROUP BY b.CATEGORY
ORDER BY b.CATEGORY;
- JOIN + ON으로 어떤 조건으로 테이블을 JOIN 할 것인지 정한다.
1-1. INNER JOIN : 두 개 이상의 테이블에서 공통된 열 기준으로 데이터를 결합한다. 테이블 모두에 존재하는 데이터만 반환한다.
- YEAR, MONTH 함수로 날짜 데이터를 다룰 수 있다.
- ORDER BY의 기본 정렬은 ASC.
날짜 및 시간 함수
CURDATE() : 현재 날짜 반환
CURTIME() : 현재 시간 반환
NOW() : 현재 날짜와 시간 반환
DATE() : 주어진 날짜 + 시간에서 날짜 부분만 추출
TIME() : 주어진 날짜 + 시간에서 시간 부분만 추출
YEAR(date) : 연도 추출
MONTH(date) : 월 추출
DAY(date) : 일 추출
WEEK(date) : 주 번호 반환
QUARTER(date) : 분기 반환
날짜 계산 함수
DATE_ADD(date, INTERVAL valut unit) : 날짜에 지정한 간격을 더함SELECT DATE_ADD('2024-01-31', INTERVAL 1 MONTH);
DATE_SUB(date, INTERBVAL value unit) : 날짜에 지정한 간격을 뺌
DATEDIFF(date1, date2) : 두 날짜 간 차이를 일수로 반환
형식 변환 함수
STR_TO_DATE(string, format) : 문자열 -> 날짜SELECT STR_TO_DATE('31/12/2024', '%d/%m/%Y');
DATE_FORMAT(date, format) : 날짜 -> 문자열
시간 관련 함수
HOUR(time) : 시 추출
MINUTE(time) : 분 추출
SECOND(time) : 초 추출
기타
EXTRACT(unit FROM date) : 특정 유닛(연도, 월 등)을 추출SELECT EXTRACT(YEAR FROM '2024-01-31')l
LAST_DAY(date) : 주어진 날짜가 속한 월의 마지막 날짜 반환