[프로그래머스(Programmers)][SQL] SELECT (Lv1) 상위 n개 레코드

728x90

 

https://programmers.co.kr/learn/courses/30/lessons/59405

 

코딩테스트 연습 - 상위 n개 레코드

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

 

 

동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문

 

MySQL

SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;

 

 ※  LIMIT  --  MySQL 에서 상위 n개 행 출력

더보기
LIMIT  { [offset,]  row_count  |  row_count  OFFSET  offset }

 

 

Oracle

SELECT NAME
FROM ( 
	SELECT NAME
	FROM ANIMAL_INS
	ORDER BY DATETIME
)
WHERE ROWNUM = 1;

/* WHERE 절 이후 ORDER BY 절이 실행되므로
우선 정렬 후 인라인 뷰로 하여 행 숫자가 1인 조건 지정하면
상위 첫 번째 행만 출력 */
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
FETCH FIRST 1 ROWS ONLY;

 

 ※  FETCH  --  Oracle 에서 상위 n개 행 출력

더보기
[ OFFSET offset ROWS]
FETCH NEXT [ row_count | percent PERCENT ] ROWS [ ONLY | WITH TIES ]

  *  OFFSET  :  행 제한 시작 전 건너뛸 행 수 지정  ( 기본은 0  =>  첫 번째 행부터 제한 시작 )
  *  ONLY  :  n 개 또는 n % 의 행을 정확히 반환
  *  WITH TIES  :  마지막 행과 동일한 정렬 키를 추가로 반환

<  상위 1개 행만 출력  >

  • FETCH NEXT 1 ROWS
  • FETCH FIRST 1 ROW

 

 

반응형