본문 바로가기

DBMS/Oracle

[Oracle] LIMIT : 결과의 개수 제한하기

 

[오라클] SQL - LIMIT : 결과의 개수 제한하기

Head First SQL 책에 있는 LIMIT 관한 내용을 보다가 이 내용을 참고로 다시 정리해 봅니다.

아래 쿼리는 판매자별 판매액이 높은 순서대로 추출하는 쿼리이다.

SELECT firtst_name, SUM(sales)

FROM cookie_sales

GROUP BY first_name

ORDER BY SUM(sales) DESC

위 결과에서 상위 두 명만 나오도록 제한(LIMIT)할 수 있다. LIMIT를 통해 결과에서 몇 개의 행이 반환될지를 정할 수 있다.

SELECT firtst_name, SUM(sales)

FROM cookie_sales

GROUP BY first_name

ORDER BY SUM(sales) DESC

LIMIT 2; -->이 부분이 결과를 두 개로 제한하는 부분이다.

이번엔 첫번째 수상자를 빼고 두번째 수상자를 집어내보자.

SELECT firtst_name, SUM(sales)

FROM cookie_sales

GROUP BY first_name

ORDER BY SUM(sales) DESC

LIMIT 1,1; --> 두번째 결과만 추출

# 두개의 파라미터를 사용하면 하나를 사용할 때와는 완전히 다른 의미가 된다.

첫번째 파라미터 "1" 은 시작할 결과의 번호이다. SQL은 0부터 시작한다.

두번째 파라미터 "1" 은 반환할 결과의 수이다.

# 만약, 20위에서 30위까지 보고 싶다면 LIMIT 19,10 이라고 하면된다. SQL은 0부터 시작이니까 19는 20위부터 시작하라는 의미이고, 10은 10개의 행을 달라는 의미이다.