soominkim Study
article thumbnail
728x90

SELECT A.MEMBER_NAME
     , B.REVIEW_TEXT
     , TO_CHAR(B.REVIEW_DATE, 'YYYY-MM-DD') AS REVIEW_DATE
  FROM MEMBER_PROFILE A
 INNER
  JOIN REST_REVIEW B
    ON A.MEMBER_ID = B.MEMBER_ID
 INNER
  JOIN(
            SELECT COUNT(SA.REVIEW_TEXT) AS CNT
                 , SA.MEMBER_ID
              FROM REST_REVIEW  SA 
             GROUP BY SA.MEMBER_ID
             ORDER BY CNT DESC
             FETCH NEXT 1 ROWS ONLY
             -- FIRST
       ) C
    ON A.MEMBER_ID        = C.MEMBER_ID
 ORDER BY B.REVIEW_DATE, B.REVIEW_TEXT

 

Oracle12 release부터 사용할 수 있는 구문으로 아래와 같은 다대일 관계를 형성하고 있다.
FETCH는 ORDER BY절 다음에 실행되고 쓸 수 있는 옵션은 다음과 같다.
SELECT *
	FROM [테이블명]
    --OFFSET [행 시작 위치] ROWS
    FETCH FIRST [행의 수] ROW ONLY --지정한 숫자가 없다면 1건만 가져온다.
    
OFFSET offset {ROW|ROWS}
FETCH {FIRST | NEXT} [ {rowcount | percent PERCENT} ] {ROW | ROWS} { ONLY | WITH TIES}

◆ OFFSET
원하는 행의 제한갯수(Row limits)를 뽑기 이전에 스킵하고 싶은 행의 갯수가 있을 시 사용할 수 있다.
OFFSET에 음수가 오게되면 0으로 인식하며, NULL이 오거나 리턴되는 행의 갯수보다 높은 수를 쓸 경우 아무행도 리턴되지 않는다.

◆ ONLY | WITH TIES
ONLY는 사용자가 지정한 행의 제한갯수만 반환한다.
WITH TIES는 사용자 지정한 행의 제한갯수에서 맨 마지막행과 같은 정렬키를 가진 행들을 보여준다.

PERCENT
사용자가 입력한 PERCENT만큼 행을 반환한다.

 

728x90
profile

soominkim Study

@soominkim

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그