728x90
728x90
오늘 포스팅하는 LIMIT과 OFFSET 구문은 쿼리문의 맨마지막에 작성한다.
SELECT ~ ORDER BY 절 까지 상단의 쿼리문들을 수행 후 원하는 행만 ✂️ 컷 ✂️ 해주는 기능이다.
쿼리문 작성 순서와 데이터 처리 순서는
SQLD 시험에서도 단골 문제로 등장하는 내용이므로 리마인드!
⇩⇩⇩
📍 쿼리문 작성 순서
SELECT - FROM - WHRER - GROUP BY - HAVING - ORDER BY - LIMIT
📍 데이터 처리 순서
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY - LIMIT
그럼 지금부터 LIMIT과 OFFSET의 의미와 예시를 살펴보겠다.
| LIMIT
N행까지만 출력하기
LIMIT {N행}
예시 1)
LIMIT 4 ;
: 4행까지만 출력
SELECT ROW_NUMBER() OVER(ORDER BY total_price DESC)
AS 'No.',
id,
FORMAT(total_price,0) AS revenue
FROM (
SELECT id,
SUM(Price) AS total_price
FROM fastcampus.tbl_purchase
WHERE purchased_at >= '2020-07-01'
AND purchased_at < '2020-08-01'
GROUP BY 1
ORDER BY 2
) AS R
LIMIT 4;
예시 2)
LIMIT 4 , 10 ;
: 5행을 시작으로 10행 출력
SELECT ROW_NUMBER() OVER(ORDER BY total_price DESC)
AS 'No.',
id,
FORMAT(total_price,0) AS revenue
FROM (
SELECT id,
SUM(Price) AS total_price
FROM fastcampus.tbl_purchase
WHERE purchased_at >= '2020-07-01'
AND purchased_at < '2020-08-01'
GROUP BY 1
ORDER BY 2
) AS R
LIMIT 4, 10;
| OFFSET
N행부터 출력하기
LIMIT {N행} OFFSET {N행}
예시 1)
LIMIT 10 OFFSET 4 ;
: 5행을 시작으로 10행 출력
SELECT ROW_NUMBER() OVER(ORDER BY total_price DESC)
AS 'No.',
id,
FORMAT(total_price,0) AS revenue
FROM (
SELECT id,
SUM(Price) AS total_price
FROM fastcampus.tbl_purchase
WHERE purchased_at >= '2020-07-01'
AND purchased_at < '2020-08-01'
GROUP BY 1
ORDER BY 2
) AS R
LIMIT 10 OFFSET 4;
엇
!!!
결론적으로 OFFSET을 사용하지 않고 LIMIT 함수 만을 통해 첫행과 출력행 수를 조정할 수 있다. 😇
LIMIT 4 , 10 ; = LIMIT 10 OFFSET 4 ;
728x90
728x90
'TOOLS > My SQL' 카테고리의 다른 글
[My SQL] 고객 세분화(Customer Segmentation) 확인 - 인구 통계 정보 산출 쿼리문 (0) | 2023.03.06 |
---|---|
[SQL개발자] SQLD 자격증 시험 독학 / 노베이스 공부 방법 총 정리! (0) | 2023.03.05 |
[My SQL] DATE_FORMAT 함수 / 날짜에서 요일, 시간 값 출력하기 (0) | 2023.03.02 |
[My SQL] LAG 함수 / 현재값 vs 이전값 증감율(차이) 계산하기 (0) | 2023.03.01 |
[My SQL] 요일별 매출 - DAYOFWEEK 함수 / 날짜에서 요일 출력하기 (0) | 2023.02.22 |