반응형
SELECT PRODUCT_CODE, sum(PRICE * SALES_AMOUNT)SALES
FROM PRODUCT as p, OFFLINE_SALE as o
WHERE p.PRODUCT_ID = o.PRODUCT_ID
GROUP BY 1
ORDER BY 2 desc, 1
OFFLINE_SALE_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 오프라인 상품 판매 ID, 상품 ID, 판매량, 판매일을 나타냄
문제
PRODUCT 테이블과 OFFLINE_SALE 테이블에서 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작성. 결과는 매출액을 기준으로 내림차순 정렬후 매출액이 같다면 상품코드를 기준으로 오름차순 정렬
두 테이블을 조인 하여 나오는 값을 통해 각각 연결된 판매가와 판매량을 곱한 합계를 출력해야 하는 문제이다. 간단하게 두 테이블을 p와 o 로 alias 처리 한후 공통 된 컬럼인 PRODUCT_ID로 연결해 주었다. 그 후 PRODUCT ID 기준으로 값을 출력 해야하니 GROUP을 해당 컬럼 기준으로 해주었고 정렬도 맞추어 주었다. 근데 풀때 왜 자꾸 오답이 나오지? 하면서 확인해보니 SUM 처리를 해주지 않았다.
뭔가 싶어서 데이터를 전부 조건문 제외해가며 비교해 보니 SUM 처리를 하지않을경우 각각의 PRODUCT ID 매출액의 첫번쨰 값만 노출이 되었다. 다음번에 놓치지말고 써야 할 것 같다.
반응형
'SQL > MY SQL 문제 풀이(프로그래머스)' 카테고리의 다른 글
[MYSQL] PROGRAMMERS_성분으로 구분한 아이스크림 총 주문량 (0) | 2024.02.21 |
---|---|
[MYSQL] PROGRAMMERS_조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2024.02.21 |
[MYSQL] PROGRAMMERS_자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.02.21 |
[MYSQL] PROGRAMMERS_입양 시각 구하기(1) (0) | 2024.02.21 |
[MYSQL] PROGRAMMERS_진료과별 총 예약 횟수 출력하기 (0) | 2024.02.21 |