리뷰를 가장 많이 작성한 회원들 조회
미해결
SQL 코딩테스트를 위한 마지막 걸음
안녕하세요 최근에 코테를 봤었는데, 비슷한 문제가 프로그래머스에 있어서 어떤 로직이 맞는지 궁금해서 질문을 남깁니다 프로그래머스의 문제는 SQL 고득점 kit에 있는 " 그룹별 조건에 맞는 식당 목록 출력하기" 입니다. MySQL로 진행했고, 리뷰를 가장 많이 작성한 멤버id를 구하기위해 서브쿼리를 작성후 rnk=1을 사용했습니다. 이후, 리뷰 가장 많이 작성한 멤버가 여러명일 수 있으므로 바깥에서 in을 사용하여 최종적으로 order by로 정렬했습니다. SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE FROM REST_REVIEW r INNER JOIN MEMBER_PROFILE m ON r.MEMBER_ID = m.MEMBER_ID WHERE r.MEMBER_ID IN ( SELECT MEMBER_ID FROM( SELECT MEMBER_ID, COUNT(MEMBER_ID), RANK() OVER(ORDER BY COUNT(MEMBER_ID) DESC) AS RNK FROM REST_REVIEW GROUP BY MEMBER_ID ) AS A WHERE RNK = 1 ) ORDER BY REVIEW_DATE, REVIEW_TEXT 최근 코테에서는 가장 높은 점수를 가진 회원의 부서ID를 구해야 하는 문제였고, 가장 높은 점수를 가진 회원이 여러명 일 경우 모두 출력하라고 명시되어있었습니다. 해당 코테에서도 rank() over (order by score desc)를 쓰고 바깥에서 rnk=1인 회원id를 구해 본 테이블과 join을 하는 로직으로 풀었는데 이렇게 접근하는게 맞는지 궁금합니다.
- sql
- mysql
- 코딩-테스트
- 프로그래머스





