inblog logo
|
stupefyee
    SQL문제풀기

    [SQL 문제 풀이] 조건에 맞는 식당 목록 출력하기

    프로그래머스 (131124)
    Stupefyee's avatar
    Stupefyee
    Mar 11, 2025
    [SQL 문제 풀이] 조건에 맞는 식당 목록 출력하기
    Contents
    내가 작성한 쿼리
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/131124
    notion image
    notion image
     

    내가 작성한 쿼리

    Oracle

    -- 댓글을 가장 많이 작성한 유저의 id를 조회하는 CTE WITH MVP AS ( SELECT MEMBER_ID FROM ( SELECT MP.MEMBER_ID FROM REST_REVIEW RR JOIN MEMBER_PROFILE MP ON RR.MEMBER_ID = MP.MEMBER_ID GROUP BY MP.MEMBER_ID ORDER BY COUNT(RR.MEMBER_ID) DESC ) WHERE ROWNUM = 1 ) SELECT MP.MEMBER_NAME, RR.REVIEW_TEXT, TO_CHAR(RR.REVIEW_DATE, 'YYYY-MM-DD') AS REVIEW_DATE FROM REST_REVIEW RR JOIN MEMBER_PROFILE MP ON RR.MEMBER_ID = MP.MEMBER_ID WHERE RR.MEMBER_ID = (SELECT MEMBER_ID FROM MVP) ORDER BY REVIEW_DATE, REVIEW_TEXT;

    MySQL

    -- 댓글을 가장 많이 작성한 유저의 id를 조회하는 CTE WITH MVP AS ( SELECT MP.MEMBER_ID FROM REST_REVIEW RR JOIN MEMBER_PROFILE MP ON RR.MEMBER_ID = MP.MEMBER_ID GROUP BY MP.MEMBER_ID ORDER BY COUNT(RR.MEMBER_ID) DESC LIMIT 1 ) SELECT MP.MEMBER_NAME, RR.REVIEW_TEXT, DATE_FORMAT(RR.REVIEW_DATE, '%Y-%m-%d') REVIEW_DATE FROM REST_REVIEW RR JOIN MEMBER_PROFILE MP ON RR.MEMBER_ID = MP.MEMBER_ID WHERE RR.MEMBER_ID = (SELECT MEMBER_ID FROM MVP) ORDER BY REVIEW_DATE, REVIEW_TEXT;

    차이점

    • 상위 N개 결과를 가져오는 방식, 순서의 차이
      • Oracle
        • ROWNUM <= N 을 사용하여 가져옴
        • WHERE절에서 사용됨 → 정렬보다 먼저 실행됨 → 서브쿼리 활용
      • MySQL
        • LIMIT N 을 사용하여 가져옴
        • 정렬 이후에 실행됨
    • 날짜의 형식을 변환하는 함수의 차이
      • Oracle
        • TO_CHAR(인수, ‘형식’)
      • MySQL
        • DATE_FORMAT(인수, '형식')
      • 각 날짜 포맷도 다르니 주의
     
    Share article
    Contents
    내가 작성한 쿼리

    stupefyee

    RSS·Powered by Inblog