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
- 리스트
- Revising the Select Query II
- HackerRank
- 태블로
- 파이썬
- 판다스
- 물 만날 물고기
- MYSQL
- SQL
- sklearn
- 나임
- leetcode
- 코랩
- 코딩테스트
- pandas
- pyinstaller
- sorted()
- colab
- power-bi
- Tableau
- DB
- 데이터분석솔루션
- KNIME
- 데이터프레임
- 프로그래머스
- 해커랭크
- 물만날물고기
- 텐서플로우
- python
- KNIME 데이터 분석
Archives
- Today
- Total
물 만날 물고기
[프로그래머스/MYSQL] - (17) 카테고리 별 도서 판매량 집계하기GROUP BY 본문
🔍 예상 검색어
더보기
# 물만날물고기
# SQL
# 프로그래머스
# MYSQL
# 카테고리 별 도서 판매량 집계하기GROUP BY
해당 포스팅은 프로그래머스 MYSQL "카테고리 별 도서 판매량 집계하기GROUP BY" 문제에 대한 풀이를 정리하였습니다.
▶ 문제
코딩테스트 연습 - 카테고리 별 도서 판매량 집계하기 | 프로그래머스 스쿨
▶ 내 정답
-- 2022년 1월의 카테고리 별 도서 판매량을 합산하고,
-- 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력
-- 결과는 카테고리명을 기준으로 오름차순 정렬해주세요.
SELECT B.CATEGORY, SUM(S.SALES) AS TOTAL_SALES
FROM BOOK AS B
JOIN (SELECT *
FROM BOOK_SALES
-- WHERE YEAR(SALES_DATE) = 2022 AND MONTH(SALES_DATE) = 1
WHERE DATE_FORMAT(SALES_DATE,"%Y-%m") = "2022-01") AS S
ON B.BOOK_ID = S.BOOK_ID
GROUP BY B.CATEGORY
ORDER BY B.CATEGORY ASC;
▶ 다른 사람 정답
SELECT A.category, sum(sales) AS total_sales
FROM book A
INNER JOIN BOOK_SALES B ON A.book_id = B.book_id
WHERE B.SALES_DATE LIKE '2022-01%'
GROUP BY A.category
ORDER BY A.category;
▶ 다른 사람 정답 (2)
SELECT CATEGORY, SUM(s.SALES) AS TOTAL_SALES
FROM BOOK b, BOOK_SALES s
WHERE b.BOOK_ID = s.BOOK_ID AND SALES_DATE BETWEEN '2022-01-01' AND '2022-01-31'
GROUP BY CATEGORY
ORDER BY CATEGORY ASC
▶ 다른 사람 정답 (3)
-- 코드를 입력하세요
SELECT A.category, SUM(B.sales)
FROM book A JOIN book_sales B
ON A.book_id = B.book_id
WHERE DATE_FORMAT(B.sales_date, '%Y-%m') = '2022-01'
GROUP BY A.category
ORDER BY A.category
▶ 다른 사람 정답 (4)
-- 코드를 입력하세요
SELECT B.CATEGORY, SUM(BS.SALES)
FROM BOOK AS B, BOOK_SALES AS BS
WHERE YEAR(BS.SALES_DATE) = '2022'
AND MONTH(BS.SALES_DATE) = '01'
AND BS.BOOK_ID = B.BOOK_ID
GROUP BY B.CATEGORY
ORDER BY B.CATEGORY
▶ 다른 사람 정답 (5)
SELECT
b.category, sum(bs.sales) as total_sales
from book b
left join book_sales bs on
b.book_id = bs.book_id
where bs.sales_date between STR_TO_DATE('2022-01-01' ,'%Y-%m-%d') AND STR_TO_DATE('2022-01-31' ,'%Y-%m-%d')
group by b.category
order by b.category asc
▶ 총평
내가 처음 이 문제를 보았을 때, "2022년 1월의 카테고리 별 도서 판매량" 조건의 WHERE절을 떠올리면서 서브쿼리로 먼져 가지를 쳐서 JOIN하자는 전략이 떠올랐는데, 다른 풀이들 보니까 그냥 FROM 절에 테이블 두개를 불러와서 WHERE절로 처리하는 방법으로 풀고 있었다. 후자가 당연히 쉽고 가독성도 좋은데 성능 부분에서 어떤게 더 좋은지 궁금하다. 성능도 평가할 수 있는 방법으로 학습을 진행해봐야겠다.
▼ 참고자료
No. | 내용 | 비고 |
1 | my sql 쉬운답 | 프로그래머스 스쿨 | haaaneeulll@gmail.com 2023.6.5 17:27 |
2 | MYSQL / JOIN 구문 사용 안하고 GROUP BY로만 풀기 | 프로그래머스 스쿨 | lyuhit 2023.4.5 21:31 |
3 | mysql_정답! | 프로그래머스 스쿨 | 박상우 2023.2.27 19:16 |
4 | 애들아 형변환 하지마라 | 프로그래머스 스쿨 | ghkdwls35@gmail.com 2023.2.27 11:25 |
5 | - | - |
▼ 복습/히스토리
더보기
No. | 복습일 | 비고 |
1 | ||
2 | ||
3 | ||
4 | ||
5 |
- 작성코드
--
'DB & SQL > 프로그래머스' 카테고리의 다른 글
[프로그래머스/MYSQL] 조건에 맞는 도서 리스트 출력하기 (0) | 2024.06.17 |
---|---|
[프로그래머스/MYSQL] - (70) 고양이와 개는 몇 마리 있을까GROUP BY (0) | 2023.07.12 |
[프로그래머스/MYSQL] - (8) 대여 기록이 존재하는 자동차 리스트 구하기 String, Date (0) | 2023.07.11 |
[프로그래머스/SQL] - (15) 평균 일일 대여 요금 구하기SELECT (0) | 2023.06.25 |
[프로그래머스/SQL] - (16) 저자 별 카테고리 별 매출액 집계하기 GROUP BY (0) | 2023.06.25 |