알고리즘/programmers

[Programmers] 그룹별 조건에 맞는 식당 목록 출력하기

꾸준함. 2023. 6. 22. 23:38

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131124

 

프로그래머스

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

programmers.co.kr

WITH문을 통해 리뷰를 작성한 사람 중 가장 많이 리뷰를 단 사람이 몇 개의 리뷰를 작성했는지 구하고 (MOST_REVIEW_COUNTS),

해당 개수만큼 리뷰를 단 사람들의 ID를 조회해 주면 쉽게 풀 수 있는 문제였습니다. (MEMBER_IDS)

MySQL을 이용하여 풀었습니다.

 

-- 코드를 입력하세요
WITH MOST_REVIEW_COUNTS AS (
SELECT
MEMBER_ID,
COUNT(*) AS CNT
FROM
REST_REVIEW
GROUP BY
MEMBER_ID
ORDER BY
CNT DESC
LIMIT
1
),
MEMBER_IDS AS (
SELECT
MEMBER_ID,
COUNT(*) AS CNT
FROM
(
SELECT
MEMBER_ID,
COUNT(*) AS CNT
FROM
REST_REVIEW
GROUP BY
MEMBER_ID
) TEMP
WHERE
CNT = (SELECT CNT FROM MOST_REVIEW_COUNTS)
)
SELECT
MEMBER_NAME,
REVIEW_TEXT,
SUBSTRING(REVIEW_DATE, 1, 10) AS REVIEW_DATE
FROM
MEMBER_PROFILE
INNER JOIN
REST_REVIEW
ON
MEMBER_PROFILE.MEMBER_ID = REST_REVIEW.MEMBER_ID
WHERE
MEMBER_PROFILE.MEMBER_ID IN (SELECT MEMBER_ID FROM MEMBER_IDS)
ORDER BY
REVIEW_DATE,
REVIEW_TEXT
view raw .sql hosted with ❤ by GitHub

 

개발환경: Programmers IDE

지적, 조언, 질문 환영합니다! 질문 남겨주세요~

반응형