Contents
내가 작성한 쿼리

내가 작성한 쿼리
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