무료 동영상 강의 https://youtu.be/itq0elYF6-U

LIMIT


Top-N은 특정한 기준으로 정렬된 데이터를 일부만 보여주는 기술을 뜻한다. MySQL은 ORDER BY 절 뒤에 LIMIT를 사용해 구현할 수 있다.

-- [SQL-3-8-1]
-- ItemNm으로 오름차순으로 정렬해 세 건만 조회
SELECT  ItemId ,ItemNm ,ItemSizeCd
FROM    startdb.Item
WHERE   ItemCat = 'COF'
ORDER BY ItemNm ASC
LIMIT 3;

ItemId  ItemNm         ItemSizeCd  
------  -------------  ----------  
AMB     Americano(B)   BIG         
AMR     Americano(R)   REG         
CLB     Cafe Latte(B)  BIG 

-- [SQL-3-8-2]
-- LaunchDt로 내림차순, ItemId로 오름차순, 7건만 조회
SELECT  ItemId ,ItemNm ,ItemSizeCd ,LaunchDt
FROM    startdb.Item
WHERE   ItemCat = 'COF'
ORDER BY LaunchDt DESC ,ItemId ASC
LIMIT 7;

ItemId  ItemNm              ItemSizeCd  LaunchDt    
------  ------------------  ----------  ----------  
EINR    Einspanner(R)       REG         2023-04-01  
FLTR    Flat White(R)       REG         2023-04-01  
IEINR   Iced Einspanner(R)  REG         2023-04-01  
IFLTR   Iced Flat White(R)  REG         2023-04-01  
AMB     Americano(B)        BIG         2019-01-01  
AMR     Americano(R)        REG         2019-01-01  
CLB     Cafe Latte(B)       BIG         2019-01-01 

OFFSET을 사용해 몇 건을 건너 뛰고 TOP-N을 출력할 수도 있다.

-- [SQL-3-8-3]
-- ItemNm으로 오름차순 여섯건 조회.
SELECT  ItemId ,ItemNm ,ItemSizeCd
FROM    startdb.Item
WHERE   ItemCat = 'COF'
ORDER BY ItemNm ASC
LIMIT 6;

ItemId  ItemNm         ItemSizeCd  
------  -------------  ----------  
AMB     Americano(B)   BIG         
AMR     Americano(R)   REG         
CLB     Cafe Latte(B)  BIG         
CLR     Cafe Latte(R)  REG         
EINR    Einspanner(R)  REG         
FLTR    Flat White(R)  REG 

-- [SQL-3-8-4]
-- ItemNm으로 오름차순, 앞쪽 세 건을 건너뛰고 다음 세건만 출력
SELECT  ItemId ,ItemNm ,ItemSizeCd
FROM    startdb.Item
WHERE   ItemCat = 'COF'
ORDER BY ItemNm ASC
LIMIT 3 OFFSET 3;

ItemId  ItemNm         ItemSizeCd  
------  -------------  ----------  
CLR     Cafe Latte(R)  REG         
EINR    Einspanner(R)  REG         
FLTR    Flat White(R)  REG 

Untitled

ORDER BY를 제외하고 LIMIT만 사용할 수도 있다. 몇 건의 샘플 데이터를 빠르게 확인하고 싶다면 이처럼 하는 것이 좀 더 도움이 될 수 있다. (ORDER BY가 포함되면 상황에 따라 DBMS 내부적인 데이터 정렬이 발생한 후에 LIMIT 가 처리된다.)

-- [SQL-3-8-5]
SELECT  *
FROM    startdb.Item
WHERE   ItemCat = 'COF'
LIMIT 10; -- > ORDER BY 없이 LIMIT만 사용

Next: 3-9. 별칭

Upper: 3. SELECT 기초