2024. 10. 21. 22:48ㆍ부트캠프 TIL
1. 프로그래머스 사용
1-1) sql 문제 : 5월 식품들의 총매출 조회하기 Lv4
ㄴ 문제 : 식품정보 테이블과 식품주문정보 테이블에서 생산일자가 2022년 5월인 식품들의 식품ID, 식품이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품ID를 기준으로 오름차순 정렬해주세요.
문제풀이)
1) 문제를 읽고 필요한 조건들을 체크한다
- 조회할컬럼체크, 생산일자가 2022년5월, 총매출로 내림차순정렬&식품ID 오름차순정렬
2) 테이블 2개에서 참조할 컬럼을 체크한다
- PRODUCT_ID(식품ID)
3) 1,2번을 토대로 쿼리문을 작성한다.
- 처음부터 놓친부분은 없는지 찾아서 진행하면 좋지만, 디버깅 하듯이 작성한 쿼리를 실행하는 시행착오를 진행
4) 작성한 쿼리를 실행해보고, 놓친부분을 찾는다.
- SELECT a.PRODUCT_ID, a.PRODUCT_NAME, SUM(a.PRICE) AS TOTAL_SALES
FROM FOOD_PRODUCT a LEFT JOIN FOOD_ORDER b ON a.PRODUCT_ID = b.PRODUCT_ID
WHERE DATE_FORMAT(PRODUCE_DATE, '%Y-%m') = '2022-05'
ORDER BY 3 DESC, 1 ASC
5) 놓친 부분 2가지를 확인했고 쿼리문을 수정한다.
- 총매출 SUM()에서 가격 * 주문량으로 계산해야함
- 2022년 5월의 식품들의 정보 : 해당 키워드로 봤을때 식품들을 그룹화해서 정렬을 해야한다.(GROUP BY)
6) 최종 완성 쿼리문
- SELECT a.PRODUCT_ID, a.PRODUCT_NAME, SUM(a.PRICE * b.AMOUNT) AS TOTAL_SALES
FROM FOOD_PRODUCT a LEFT JOIN FOOD_ORDER b ON a.PRODUCT_ID = b.PRODUCT_ID
WHERE DATE_FORMAT(PRODUCE_DATE, '%Y-%m') = '2022-05'
GROUP BY PRODUCT_NAME
ORDER BY 3 DESC, 1 ASC
'부트캠프 TIL' 카테고리의 다른 글
[61] 부트캠프 TIL - 본캠프 43일차 (0) | 2024.10.23 |
---|---|
[60] 부트캠프 TIL - 본캠프 42일차 (0) | 2024.10.22 |
[58] 부트캠프 TIL - 본캠프 40일차 (0) | 2024.10.18 |
[57] 부트캠프 TIL - 본캠프 39일차 (10) | 2024.10.17 |
[56] 부트캠프 TIL - 본캠프 38일차 (4) | 2024.10.16 |