코딩테스트

[프로그래머스] [SQL] 5월 식품들의 총매출 조회하기

히그다스 2023. 12. 6. 17:11

 

 

오늘도 평화로운 주인장의 SQL 풀기

 

 

 

 

나머지는 있는대로 넣으면 돼서 안힘들었는데

총합에서 조금 애먹었다

 

우선 PRODUCT_ID별로 안나누면 같은 PRODUCT_ID 라도 따로 집계돼서 GROUP BY 사용

SELECT절에서 가격이랑 양 곱한거 합했다

이러면 총합은 완료

 

하지만 여전히 오답이었다

예시를 잘 보니 만들어진게 안나가는 경우도 있어서

FOOD_PRODUCT에 left join하게 만들었다

 

그랬더니 통과됨!

 

SELECT FOOD_PRODUCT.PRODUCT_ID, FOOD_PRODUCT.PRODUCT_NAME, sum(FOOD_PRODUCT.PRICE*FOOD_ORDER.AMOUNT) as "TOTAL_SALES"
FROM FOOD_PRODUCT LEFT JOIN FOOD_ORDER ON FOOD_PRODUCT.PRODUCT_ID = FOOD_ORDER.PRODUCT_ID
WHERE FOOD_ORDER.PRODUCE_DATE LIKE '2022-05%'
GROUP BY FOOD_PRODUCT.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, FOOD_PRODUCT.PRODUCT_ID ASC;

 

 

뤼튼에게 물어본 코드 간소화

 

테이블 이름을 간소화시키는 건 생각도 안해봤는데

FROM절에서 테이블 이름 뒤에 간소화할 단어 넣으면 끝!

 

실무는 모르겠고

나는 문제풀때 헷갈려서

따로 이름을 간소화하진 않을 거 같다 

 

 

SELECT 
    p.PRODUCT_ID, 
    p.PRODUCT_NAME, 
    SUM(p.PRICE * o.AMOUNT) AS TOTAL_SALES
FROM 
    FOOD_PRODUCT p
LEFT JOIN 
    FOOD_ORDER o ON p.PRODUCT_ID = o.PRODUCT_ID
WHERE 
    o.PRODUCE_DATE LIKE '2022-05%'
GROUP BY 
    p.PRODUCT_ID
ORDER BY 
    TOTAL_SALES DESC, p.PRODUCT_ID ASC;

 

 

대답 중에 이해가 안되는게 있어서 다시 질문했는데

틀렸다고 사과했다

 

내가 맞음 0.< V

 

 

 

 

 


출처: 프로그래머스