database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 40400 게시물 읽기
No. 40400
where rownum <= 10 order by crt_date desc 문의
작성자
이성근(excel64)
작성일
2014-03-10 22:25
조회수
6,353

다름이 아니라 특정 테이블의 데이터를 조회 하는데

rownum 과 order by를 사용 하면 먼저 where절의 rownum <= 10에의해 10개의

레코드 추출후 이에 대한 order by 절이 적용 되어서요.. ㅠ.ㅠ

결국 제가 원하는 건 생성일자로 정렬한 후 그 중에서 제일 빠른 10개의

레코드를 추출 하고자 합니다.

어찌 해야 할까요?

이중 select를 사용 하면 가능은 하지만 레코드가 많은 경우 너무 늦어서요.

도움좀 부탁 드립니다.

select *

from test_tb

where rownum <= 10

order by crt_date desc;

/* order by 절 이전에 먼저 10개를 추출 하고 그 10개에서 정렬을 하므로 아무 의미 없음. */

select a.* from

(select * from test_tb

order by crt_date desc)

where rownum <= 10;

/* 원하는 답은 얻어오나 데이터 량이 많으면 하세월 */

ㅠ.ㅠ

제발 도움 부탁 드립니다.

이 글에 대한 댓글이 총 1건 있습니다.

먼저 정렬후 10개 추출하므로 아무런 의미가 없다구요?
절대 그렇지 않습니다. 의미가 있습니다.
정렬을 위한 공간을 10개만 사용하게 됩니다.
전체스캔은 어쩔수 없는 거구요.
인덱스가 없는 상태에서는 최선의 방법입니다.
전체스캔이 아닌 10개만 스캔하려면? 인덱스가 있어야겠지요.
정렬 기준항목으로 인덱스를 생성하시면 됩니다.

마농(manon94)님이 2014-03-10 23:11에 작성한 댓글입니다.
이 댓글은 2014-03-10 23:11에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
40406오라클 업데이트 쿼리 질문드려요 ㅠㅠ [2]
도토리
2014-03-17
7743
40405권한주는 방법을 알려주세요~ [1]
궁금이
2014-03-13
6685
40402안녕하십니까? ROLLUP 관련해서 문의드립니다. [2]
황인준
2014-03-13
7764
40400where rownum <= 10 order by crt_date desc 문의 [1]
이성근
2014-03-10
6353
40398이런 쿼리 가능할까요? [5]
이태우
2014-03-10
6945
40397뷰에 널값으로 컬럼 하나 추가 가능한가요?
민규
2014-03-07
6448
40396쿼리좀 도와주세요. [1]
초보
2014-03-06
6341
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다