문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

테이블구조와 출력예시

 

 

테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL을 작성한다.

최종 결과는 총매출을 기준으로 내림차순 정렬해서 출력한다.

 

ORDER 테이블에서 주문량(amount)을 집계한 뒤

PRODUCT 테이블의 생산일자가 2022년 05월인 제품의 금액을 곱해서 매출을 출력했다.

 

풀이 1 (MySQL)

SELECT FINFO.PRODUCT_ID
     , FINFO.PRODUCT_NAME
     , PTOTAL.AMOUNT*FINFO.PRICE AS TOTAL_SALES
FROM
    (SELECT PRODUCT_ID
         , SUM(AMOUNT) AS AMOUNT
    FROM FOOD_ORDER 
    WHERE DATE_FORMAT(PRODUCE_DATE,'%Y%m')='202205'
    GROUP BY PRODUCT_ID) PTOTAL, FOOD_PRODUCT FINFO
WHERE PTOTAL.PRODUCT_ID = FINFO.PRODUCT_ID
ORDER BY TOTAL_SALES DESC
;

 

 

풀이 2 (Oracle)

SELECT FINFO.PRODUCT_ID
     , FINFO.PRODUCT_NAME
     , PTOTAL.AMOUNT*FINFO.PRICE AS TOTAL_SALES
FROM
    (SELECT PRODUCT_ID
         , SUM(AMOUNT) AS AMOUNT
    FROM FOOD_ORDER 
    WHERE TO_CHAR(PRODUCT_DATE,'YYYYMM')='202205'
    GROUP BY PRODUCT_ID) PTOTAL
    , FOOD_PRODUCT FINFO
WHERE PTOTAL.PRODUCT_ID = FINFO.PRODUCT_ID
ORDER BY TOTAL_SALES DESC
;

 

 

 

이상한 점은 오라클에선 PRODUCE_DATE 필드를 못 읽었다..

PRODUCT_DATE 로 실행하면 결과는 MySQL과 동일하게 나오고 채점할땐 틀렸다 나왔다..;;

아마도 프로그래머스의 오류인 듯.. 싶다.

 

(링크)그룹별 조건에 맞는 식당 목록 출력하기 문제도

 MySQL, Oracle 같은 로직으로 풀었는데 MySQL은 정답, Oracle은 틀림으로 제출됐다....

첨엔 오라클로 풀었는데 날린 시간 생각하니 열받는다 ㅂㄷㅂㄷ

 

혹시나 제 sql이 문제라면 댓글 부탁드립니다..

반응형

+ Recent posts