less than 1 minute read

📜문제


https://school.programmers.co.kr/learn/courses/30/lessons/144856

image

📜정답


    SELECT B.AUTHOR_ID,B.AUTHOR_NAME,A.CATEGORY,SUM(A.PRICE * C.SALES)AS TOTAL_SALES FROM BOOK A 
    INNER JOIN AUTHOR B ON A.AUTHOR_ID=B.AUTHOR_ID
    INNER JOIN BOOK_SALES C ON A.BOOK_ID=C.BOOK_ID
    WHERE SALES_DATE LIKE '2022-01%'
    GROUP BY AUTHOR_ID, CATEGORY
    ORDER BY AUTHOR_ID ASC, CATEGORY DESC

📜노트


  • 덧셈 함수
    sum
  • 컬럼명 LIKE ‘__부분일치값%’
    % : ‘모든 문자’라는 의미로 글자수 제한이 없음
    _ : ‘한 글자’라는 의미로 글자수 제한이 있음

그리하여 SALES_DATE LIKE '2022-01%'일때 ‘2022-01’이라는 문자열이 포함된 부분일치를 찾는 뜻이다.
패턴은 %를 사용했으므로 ‘2022-01’로 시작하는 대여 기간을 찾으며, 뒤로 몇자의 문자가 있는지는 상관이 없다.
만약 _을 사용한 SALES_DATE LIKE '_2022-01%'라면 ‘2022-01’이라는 문자열 앞에 1개의 문자가 있는 문자열을 찾게 된다.