본문 바로가기
프로그래머스/[프로그래머스 - ORACLE] Lv.4

[프로그래머스 - ORACLE] 그룹별 조건에 맞는 식당 목록 출력하기

by 코딩하는 흰둥이 2023. 3. 23.
반응형


CREATE 문
CREATE TABLE MEMBER_PROFILE    (
MEMBER_ID			VARCHAR(100)	NOT NULL,
MEMBER_NAME			VARCHAR(50)	NOT NULL,
TLNO				VARCHAR(50)	NULL,
GENDER				VARCHAR(1)	NULL,
DATE_OF_BIRTH			DATE		NULL
)


CREATE TABLE REST_REVIEW  (
REVIEW_ID			VARCHAR(10)		NOT NULL,
REST_ID				VARCHAR(10)		NULL,
MEMBER_ID			VARCHAR(100)		NULL,
REVIEW_SCORE			NUMBER			NULL,
REVIEW_TEXT			VARCHAR(1000)		NULL,
REVIEW_DATE			DATE			NULL
)

  • 내 풀이
SELECT
    P.MEMBER_NAME,
    R.REVIEW_TEXT,
    TO_CHAR(R.REVIEW_DATE, 'YYYY-MM-DD') AS REVIEW_DATE
FROM MEMBER_PROFILE P INNER JOIN REST_REVIEW R
ON P.MEMBER_ID = R.MEMBER_ID
-- 리뷰가 여러개 나오기 때문에 IN
AND R.MEMBER_ID IN (SELECT
                        MEMBER_ID FROM REST_REVIEW 
                        GROUP BY MEMBER_ID 
                        HAVING COUNT(MEMBER_ID) = 
                   (SELECT MAX(COUNT(MEMBER_ID)) FROM REST_REVIEW GROUP BY MEMBER_ID))
ORDER BY R.REVIEW_DATE ASC , REVIEW_TEXT ASC;

리뷰를 제일 많이 적은 '사람'의 리뷰만 가져오는 줄 알았는데

음식점 마다 리뷰를 제일 많이 적은 '사람들' 이 오는 거였다

댓글