Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 그래프 탐색
- 구현
- 너비 우선 탐색
- 스택
- 백트래킹
- 그래프 이론
- 브루트포스
- ListIterator
- 배열
- 거듭제곱
- 그리디 알고리즘
- 빅오 표기법
- ifnull
- 소수 판정
- 문자열
- 정수론
- 연결 리스트
- 자료 구조
- BFS
- toLowerCase()
- 요세푸스 문제
- 정렬
- IS NOT NULL
- 분할 정복
- MySQL
- 큐
- 수학
- 시간 복잡도
- 공간 복잡도
- toUpperCase()
Archives
- Today
- Total
배푸니까
[프로그래머스 / SQL] 저자 별 카테고리 별 매출액 집계하기 본문
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/144856
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
💯 최종 코드
WITH
TABLE_01 AS
(
SELECT B.AUTHOR_ID, B.CATEGORY, SUM(SALES) * PRICE AS TOTAL_SALES
FROM BOOK AS B
JOIN BOOK_SALES AS S
ON B.BOOK_ID = S.BOOK_ID
WHERE S.SALES_DATE LIKE '2022-01%'
GROUP BY B.BOOK_ID, B.AUTHOR_ID, B.CATEGORY
)
,
TABLE_02 AS
(
SELECT T1.AUTHOR_ID, A.AUTHOR_NAME, T1.CATEGORY, SUM(T1.TOTAL_SALES)
FROM TABLE_01 AS T1
JOIN AUTHOR AS A
ON T1.AUTHOR_ID = A.AUTHOR_ID
GROUP BY T1.AUTHOR_ID, T1.CATEGORY
)
SELECT *
FROM TABLE_02
ORDER BY AUTHOR_ID, CATEGORY DESC;
💡 깨달은 점
1. WITH 절
- 단계별로 테이블을 만들어나가면서 JOIN을 시키는 형태이다.
- 차근차근 두 개의 테이블을 JOIN 하면서 필요한 데이터들을 뽑아나가는 식으로 코드를 구현할 때 적합하다.
- 여러 STEP으로 만들고, 나는 마지막 STEP에서 필요한 컬럼과 데이터를 모두 뽑았다. 마지막에는 정렬 조건만 추가해 주었다.
반응형
'프로그래머스 - SQL' 카테고리의 다른 글
[프로그래머스 / SQL] 중복 제거하기 (0) | 2023.09.28 |
---|---|
[프로그래머스 / SQL] NULL 처리하기 (0) | 2023.06.24 |