오후내내 SQL을 오라클로 풀고 있었는데 실행결과는 잘 나오는데

틀렸다고 나와서 구글링도 해보고 시간을 꽤나... 썼는데

똑같은 SQL을 오라클로 제출할땐 실패였는데 MySQL에선 정답으로 떠서 어이가 없던 문제.....!!!!!!!!!

 

열받아서 서론을 길게 적었다.

문제

 

프로그래머스

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

programmers.co.kr

 

 

리뷰를 가장 많이 작성한 회원의 <회원 이름, 리뷰 텍스트, 리뷰 작성일>을 조회하는 SQL을 작성한다.

결과는 리뷰 작성일을 기준으로 오름차순 정렬해서 출력한다.

 

REST_INFO테이블과 REST_REVIEW 테이블구조 (출처: 프로그래머스)

 

테이블 데이터와 SQL 출력 예시

 

 

풀이 (MySQL, Oracle)

SELECT IMEMBER.MEMBER_NAME
     , MEM_RR.REVIEW_TEXT
     , MEM_RR.REVIEW_DATE
FROM  (SELECT MEM_MP.MEMBER_ID, MEM_MP.MEMBER_NAME
        FROM (SELECT MEMBER_ID
              , RANK() OVER (ORDER BY COUNT(MEMBER_ID) DESC) AS RNK
                FROM REST_REVIEW
                GROUP BY MEMBER_ID
             ) MEM_RNK
            , MEMBER_PROFILE MEM_MP
        WHERE MEM_RNK.RNK=1
          AND MEM_RNK.MEMBER_ID = MEM_MP.MEMBER_ID
      ) IMEMBER
      , REST_REVIEW MEM_RR
WHERE MEM_RR.MEMBER_ID = IMEMBER.MEMBER_ID
ORDER BY MEM_RR.REVIEW_DATE
;

 

 

리뷰 테이블에서 리뷰를 작성한 회원의 ID를 집계한 뒤 많은 순으로 랭킹을 부여했다.

 

MySQL 제출은 맞고 오라클은 틀리게 제출되는 이유.. 아시는 분은 댓글 부탁드립니다!!!

반응형

+ Recent posts