수리검 꽂고싶은 수요일

은4·2025년 4월 16일


섹시 아니고 색시 토마토
토마토가 색시가 되었어요
오늘 내 티셔츠~~~ 넘 예쁨ㅋㅋㅋㅋ

코드카타 느리더라도 한문제씩 꾸준히 풀기

68번 첫번째 쿼리작성

SELECT 
  O.AUTHOR_ID, 
  O.AUTHOR_NAME, 
  O.CATEGORY, 
  O.PRICE * S.SALES AS TOTAL_SALES
FROM (
    SELECT 
      B.BOOK_ID,
      B.CATEGORY,
      B.AUTHOR_ID,
      B.PRICE,
      A.AUTHOR_NAME
    FROM BOOK B
    JOIN AUTHOR A ON B.AUTHOR_ID = A.AUTHOR_ID
    WHERE B.PUBLISHED_DATE BETWEEN '2022-01-01' AND '2022-01-31'
) O
JOIN BOOK_SALES S ON O.BOOK_ID = S.BOOK_ID
ORDER BY O.AUTHOR_ID ASC , O.CATEGORY DESC

특징
BOOK 테이블 기준으로 필터링합니다. 즉, 2022년 1월에 출판된 책들만 대상

이 책들에 대해 모든 판매 기록(시점과 상관없이)을 BOOK_SALES에서 가져와서 PRICE * SALES로 계산

SALES_DATE는 고려하지 않음 → 판매가 언제 일어났는지는 중요하지 않음.

집계(X): 단순히 행별로 계산해서 출력할 뿐, 총합을 구하지 않음.

수정된 두번째 쿼리

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

집계가 안되었다고해서 재작성..

최종!!!!!!

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

BOOK_SALES 테이블 기준으로 필터링 즉, 2022년 1월에 발생한 판매 기록만 대상

해당 판매 기록에 연결된 책들을 JOIN해서 가격 정보를 가져온 뒤, PRICE * SALES를 합산(SUM).

집계가 포함되어 있어, 결과는 AUTHOR_ID, CATEGORY별 총 판매액 나타냄

출판일은 고려하지 않음 → 출판일이 언제인지는 중요하지 않음.

SQL의 사고방식을 장착하는건 너무나 컴퓨터같은 일

아오 머리아파!

profile
Piano에서 IT로

7개의 댓글

comment-user-thumbnail
2025년 4월 16일

아 맞다 코드카타... 까먹다가 은4 벨로그로 다시 생각남 허허

1개의 답글
comment-user-thumbnail
2025년 4월 17일

멋쟁이토마토..

1개의 답글
comment-user-thumbnail
2025년 4월 17일

나는야 케챱 될 거야

1개의 답글