[프로그래머스, SQL] 카테고리 별 도서 판매량 집계하기

Minjoo Kim·2024년 10월 28일
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;
  1. JOIN + ON으로 어떤 조건으로 테이블을 JOIN 할 것인지 정한다.
    1-1. INNER JOIN : 두 개 이상의 테이블에서 공통된 열 기준으로 데이터를 결합한다. 테이블 모두에 존재하는 데이터만 반환한다.
  2. YEAR, MONTH 함수로 날짜 데이터를 다룰 수 있다.
  3. ORDER BY의 기본 정렬은 ASC.

날짜 및 시간 함수

  1. CURDATE() : 현재 날짜 반환
  2. CURTIME() : 현재 시간 반환
  3. NOW() : 현재 날짜와 시간 반환
  4. DATE() : 주어진 날짜 + 시간에서 날짜 부분만 추출
  5. TIME() : 주어진 날짜 + 시간에서 시간 부분만 추출
  6. YEAR(date) : 연도 추출
  7. MONTH(date) : 월 추출
  8. DAY(date) : 일 추출
  9. WEEK(date) : 주 번호 반환
  10. QUARTER(date) : 분기 반환

날짜 계산 함수

  1. DATE_ADD(date, INTERVAL valut unit) : 날짜에 지정한 간격을 더함
    SELECT DATE_ADD('2024-01-31', INTERVAL 1 MONTH);
  2. DATE_SUB(date, INTERBVAL value unit) : 날짜에 지정한 간격을 뺌
  3. DATEDIFF(date1, date2) : 두 날짜 간 차이를 일수로 반환

형식 변환 함수

  1. STR_TO_DATE(string, format) : 문자열 -> 날짜
    SELECT STR_TO_DATE('31/12/2024', '%d/%m/%Y');
  2. DATE_FORMAT(date, format) : 날짜 -> 문자열

시간 관련 함수

  1. HOUR(time) : 시 추출
  2. MINUTE(time) : 분 추출
  3. SECOND(time) : 초 추출

기타

  1. EXTRACT(unit FROM date) : 특정 유닛(연도, 월 등)을 추출
    SELECT EXTRACT(YEAR FROM '2024-01-31')l
  2. LAST_DAY(date) : 주어진 날짜가 속한 월의 마지막 날짜 반환
profile
Hello, this is Minjoo Kim.

0개의 댓글