코딩테스트

[26.03.17 코테/회고(MySQL/Oracle)]-그룹별 조건에 맞는 식당 목록 출력하기

지니248 2026. 3. 17. 13:29

Lv4. 그룹별 조건에 맞는 식당 목록 출력하기 (MySQL)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/131124?language=mysql

 

내가 작성한 코드

SELECT M.MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE 
FROM MEMBER_PROFILE M
JOIN REST_REVIEW R
  ON M.MEMBER_ID = R.MEMBER_ID
WHERE M.MEMBER_ID = (SELECT MEMBER_ID
                     FROM REST_REVIEW
                     GROUP BY MEMBER_ID
                     ORDER BY COUNT(*) DESC
                     LIMIT 1)
ORDER BY R.REVIEW_DATE ASC, R.REVIEW_TEXT ASC;

 

Oracle

SELECT M.MEMBER_NAME, REVIEW_TEXT, TO_CHAR(REVIEW_DATE, 'YYYY-MM-DD') AS REVIEW_DATE 
FROM MEMBER_PROFILE M
JOIN REST_REVIEW R
  ON M.MEMBER_ID = R.MEMBER_ID
WHERE M.MEMBER_ID = (SELECT MEMBER_ID
                     FROM REST_REVIEW
                     GROUP BY MEMBER_ID
                     ORDER BY COUNT(*) DESC
                     FETCH FIRST 1 ROWS ONLY)
ORDER BY R.REVIEW_DATE ASC, R.REVIEW_TEXT ASC;

문제 회고

1. DATE_FORMAT 지정하지 않았을 때 예시와 달리 시/분/초 단위까지 출력

- (↓ 아래 사진1 참조)

- 질문하기 창을 통해 다른 사람들이 작성한 풀이 참고

- 틀린 이유:

   - 데이터베이스 내부적으로는 시간 정보까지 포함하고 있는 경우가 많음

   - 문제의 요구사항대로 특정 포맷을 엄격하게 준수하지 않음

- 해결 방법:

   - (MySQL) : DATE_FORMAT(컬럼명, '%Y-%m-%d')

   - (Oracle) : TO_CHAR (컬럼명, 'YYYY-MM-DD')

2. 행 제한 방식 차이점

- (MySQL) LIMIT n

- (Oracle) FETCH FIRST n ROWS ONLY

사진1) DATE_FORMAT 지정하지 않은 결과