<MySQL>
[LIMIT] 과 [OFFSET]
SELECT *
FROM TABLE
-- 1) 첫 행부터 N개의 데이터만
LIMIT n
-- 2) M번째 행부터 N개의 데이터만
LIMIT m, n
-- 3) OFFSET을 활용한 M번째 행부터 N개의 데이터만
LIMIT n OFFSET m
(참고) 사이트를 만들다 보면 Paging 할 때가 있는데, 그때 OFFSET 유용하다고 한다.
<ORACLE>
[ROWNUM]
+) Sql Server에서는 top함수 사용
> 조회한 데이터에 일련번호를 붙여준다.
> ROWNUM 사용할 때 주의,
: DML 쿼리 기본 진행 순서는 다음과 같다 : [FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY ]
다음 예시를 보면,
SELECT CITY, LENGTH(CITY)
FROM STATION
WHERE ROWNUM = 1 ;
SELECT CITY, LENGTH(CITY)
FROM (SELECT CITY, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY), CITY ASC)
WHERE ROWNUM = 1 ;
즉, ROWNUM 활용하기 위해서는 FROM절에 서브쿼리를 활용해 미리 정렬을 해준 다음에 써야 한다.
> 하위 5개 데이터 불러오기
SELECT CITY, LENGTH(CITY)
FROM (SELECT CITY, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY), CITY ASC)
WHERE ROWNUM <= 5 ;
[FETCH 함수] _참고 사이트_
+) Sql Server 에서는 LIMIT 함수를 통해 n개의 행을 불러올 수 있다.
- ORACLE 12c 부터 사용가능한 함수.. Hacker Rank는 oracle 11g..
-- 기본 형태
FETCH [NEXT | FIRST] [ row_count | percent PERCENT ] ROWS [ ONLY | WITH TIES ]
> 용어 설명
a. NEXT - FIRST를 대신해서 사용할 수 있다.
b. row_count - n개에 해당하는 값을 불러온다
c. percent - %해당하는 값을 불러온다.
d. ONLY - 딱 N개에 해당하는 값만 불러온다.
e. WITH TIES - 같은 값인 경우 포함해서 불러온다.
> 문제 풀다가 나오는 경우 예시 사용할 예정입니다 ㅎㅎ,
'[스파르타코딩클럽]데이터분석 과정 > SQL' 카테고리의 다른 글
[SQL코드카타] 138번 ~ 143번 Hackerrank (1) | 2023.12.28 |
---|---|
[SQL][ORACLE] 문자 자르기엔 (0) | 2023.12.27 |
[SQL코드카타] 130 ~ 137번 (HackerRank) (0) | 2023.12.27 |
[SQL][ORACLE] EXISTS (0) | 2023.12.26 |
[SQL 코드카타] 10문제 (0) | 2023.12.26 |