일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Notice
Tags
- null
- INSERT
- 테이블삭제
- Update
- 30일글쓰기
- 회사싫어
- Drop
- where절
- 직장인일기
- 보울룸
- 넷플릭스
- 일기
- ROWNUM
- constraint
- 회사생활
- SQL
- 직장생활
- 전생
- 책리뷰
- 빅데이터
- 데이터모델링
- 30일챌린지
- 환생
- SQLD
- data
- rename
- 홈트
- 인덱스
- 도전
- ERD
Archives
- Today
- Total
최보름달
[SQL] ROWNUM, TOP() 본문
ROWNUM
오라클에서 순위가 높은 N개의 로우를 출력할때 사용하는 명령어.
오라클은 정렬이 완료된 후 데이터를 출력하는게 아니라, 데이터 일부를 추출한 후에 정렬작업이 일어난다.
급여가 높은 3명만 추리고 싶을 때
-- 이렇게 하면 엉뚱한 결과가 나온다. 틀린 쿼리.
SELECT ENAME, SAL
FROM EMP
WHERE ROWNUM < 4 -- 이걸 먼저 수행하고
ORDER BY SAL DESC ; -- 이게 돌아버리기 때문.
-- 이렇게 하셔야 합니다.
SELECT ENAME, SAL
FROM ( SELECT ENAME, SAL
FROM EMP
ORDER BY SAL DESC ) -- 인라인 뷰를 이용해서 데이터셋을 구성해줘야 한다.
WHER ROWNUM < 4 ;
TOP()
오라클과 달리 sql server에서 제공하는 TOP() 함수는 데이터 정렬 후 원하는 데이터를 출력한다.
급여가 높은 2명을 추리고 싶을 때
SELECT TOP(2) ENAME, SAL
FROM EMP
ORDER BY SAL DESC ;
급여가 높은 2명을 추리되, 같은 급여를 받는 사람이 있다면 같이 출력하는 예제
SELECT TOP(2) WITH TIES ENAME, SAL
FROM EMP
ORDER BY SAL DESC ;
TOP(2) WITH TIES 옵션은 동일 수치의 데이터를 추가로 더 추출하는 함수다.
kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.
'문송한 회사생활 > SQL 공부' 카테고리의 다른 글
[SQL] STANDARD SQL, 집합 연산자 (0) | 2020.08.15 |
---|---|
[SQL] JOIN, EQUI JOIN, Non EQUI JOIN, 3개 이상 테이블 조인 (0) | 2020.08.15 |
[SQL] SELECT 문장 실행 순서 (0) | 2020.08.14 |
[SQL] ORDER BY (0) | 2020.08.14 |
[SQL] GROUP BY, HAVING (0) | 2020.08.13 |