[Programmers/프로그래머스] SQL High Score Kit : 상위 n개 레코드 (Oracle)
문제
풀이
-
SELECT
동물 이름 -
FROM
(보호소에 들어온 날짜 오름차순 정렬 서브쿼리) -
WEHRE
ROWNUM = 1;🔽
-
SELECT
동물 이름 -
FROM
(SELECT
동물 이름FROM
ANIMAL_INSORDER BY
보호 시작일 오름차순) -
WEHRE
ROWNUM = 1;
SQL문
1
2
3
4
// Oracle
SELECT NAME
FROM (SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME)
WHERE ROWNUM = 1;
배운 점 메모
-
상위 N개 데이터 조회하기
a. Oracle
⇒ 서브쿼리와ROWNUM
사용
ROWNUM
은 조회된 순서로 순번을 매기는 가상 컬럼1 2 3 4 5
// 상위 n개 행 조회하기 SELECT [컬럼1], [컬럼2], ... FROM ([정렬 서브쿼리]) WHERE ROWNUM <= n;
b. MS-SQL
⇒TOP
사용1 2 3 4 5 6
// 상위 n개 행 조회하기(n개만 출력) SELECT TOP [레코드 수] [컬럼1], [컬럼2], ... FROM [테이블명] WHERE [조건절] ORDER BY [정렬 조건];
1 2 3 4 5 6
// 상위 n개 행 조회하기(중복 데이터도 출력) SELECT TOP [레코드 수] WITH TIES [컬럼1], [컬럼2], ... FROM [테이블명] WHERE [조건절] ORDER BY [정렬 조건];
c. MySQL
⇒LIMIT
사용1 2 3 4 5
// 상위 n개 행 조회하기 SELECT [컬럼1], [컬럼2], ... FROM [테이블명] ORDER BY [정렬 조건] LIMIT n;
참고 사이트
[SQL] 상위 n개 데이터 조회하기
[Oracle] 상위 n개 데이터를 추출하는 2가지 방법
[Oracle] ROWNUM과 사용할 시 주의할 점
[MS SQL SERVER] TOP, TOP WITH TIES 차이