2024. 9. 26. 10:58ㆍ부트캠프 TIL
1. 프로그래머스 이용한 sql과 알고리즘 문제 해결
1-1) sql 문제 : 상품 별 오프라인 매출 구하기
ㄴ 문제 : 상품정보와 상품판매정보테이블에서 상품코드별 매출액(판매가*판매량)합계를 출력하는 SQL문을 작성해주세요. 결과는 매출액을 기준으로 내림차순 정렬하고, 매출액이 같다면 상품코드를 기준으로 오름차순 정렬해주세요.
※ 테이블 2개를 참조해서 조회.
ㄴ 설명_1 : 조회할 컬럼 체크 - (상품코드, 총판매량)
ㄴ 설명_2 : 2개 테이블 조인할 컬럼 체크 (상품아이디)
ㄴ 설명_3 : 2번에서 조인한 후에 매출액합계 공식에 따라 계산한 값을 계산 (SUM과 * 활용)
ㄴ 설명_4 : 상품코드별로 묶는다 (GROUP BY 활용)
ㄴ 설명_5 : 판매량의 is not null 조건을 넣었는데 정답에 영향은없다. (데이터 조회했을때 빈값이 있어서 없애려고 임의로넣었음)
ㄴ 설명_6 : 매출액 내림차순, 상품코드 오름차순 정렬을 해준다.(ORDER BY 활용)
ㄴ 실제 쿼리 :
SELECT
a.PRODUCT_CODE,
SUM(a.PRICE * b.SALES_AMOUNT) AS SALES
FROM PRODUCT a LEFT JOIN OFFLINE_SALE b ON a.PRODUCT_ID = b.PRODUCT_ID
WHERE b.SALES_AMOUNT IS NOT NULL
GROUP BY a.PRODUCT_CODE
ORDER BY 2 DESC, 1 ASC;
1-2) 알고리즘 문제 : 내적
ㄴ a,b각각의 배열에서 같은 인덱스끼리 값을 곱해야한다.
- 배열의 길이는 같기때문에 반복문으로 results변수에 각 배열의 값을 곱해준다.
ㄴ answer에 곱한값을 다 더해준다.
ㄴ answer를 리턴하면 마무리
'부트캠프 TIL' 카테고리의 다른 글
[44] 부트캠프 TIL - 본캠프 26일차 (6) | 2024.09.30 |
---|---|
[43] 부트캠프 TIL - 본캠프 25일차 (2) | 2024.09.27 |
[41] 부트캠프 TIL - 본캠프 23일차 (10) | 2024.09.25 |
[40] 부트캠프 TIL - 본캠프 22일차 (0) | 2024.09.24 |
[39] 부트캠프 TIL - 본캠프 21일차 (1) | 2024.09.23 |