반응형

mysql 에서는 아주 간편하게 limit 함수를 이용해서 몇개의 데이터만 가지고 왓엇는데, rownum 이라는 함수를 사용해서인지 이유는 아직 모르겟다... 아직 더 자세히 공부를 하지는 못햇다. 

하지만, 일단 원하는 rownum의 범위로 검색

반응형
SELECT
 * 
FROM(
    SELECT 
        sub.*, 
        ROWNUM AS "OFFSET" 
    FROM
        (SELECT 
            WORKER_NAME AS "workerName",
            WORKER_TEL AS "workerTel",
            TIMELINE AS "timeline",
            COMUTE_TYPE AS "commuteType",
            TO_CHAR(TIMELINE, 'YYYY-MM-DD') AS "dateInfo"
        FROM 
            ATTENDANCE_INFO
            WHERE IS_STATISTICS = 0
            GROUP BY TO_CHAR(TIMELINE, 'YYYY-MM-DD'), WORKER_NAME, WORKER_TEL, TIMELINE, COMUTE_TYPE
            ORDER BY WORKER_NAME, TO_CHAR(TIMELINE, 'YYYY-MM-DD')
    ) sub)
    WHERE ROWNUM <= 80 
    AND OFFSET >= 30;

여기서

ROWNUM을 OFFSET으로 ALIAS 로 지정해두고, WHERE 절에 사용된 ROWNUM 은 sub 에서 select된 ROWNUM 이 아닌, 맨 마지막에 SELECT * 에서 선택되어지는 ROW들의 NUM 이라고 생각하면 된다.

그리고 그 안에서의 ROWNUM 은 OFFSET으로 지정된거다. 그래서 OFFSET이라는 변수에 저런식으로 지정해주면 된다!

반응형

+ Recent posts