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 39435 게시물 읽기
No. 39435
DISTINCT 질문입니다.
작성자
물어보자
작성일
2012-05-03 16:10
조회수
4,526

SELECT DISTINCT ORDT, NWNO
      FROM   IPATORD   
      WHERE  PID = '1111' AND
       DLFL  = 'A'      AND
       DCFL  = 'A'      AND
       USPG    IN ('D', 'A', 'O','P')        ORDER BY ORDT DESC

이런 쿼리인데요 DISTINCT로 중복제거를 해서 너무느립니다

다른 방법은 없을까요?

중요한것은 어떤 사람에대해 일자별로 자료가 있는지만 체크하면되는데..

일자별로 오더가 굉장히 많은경우가 발생하여 쿼리가 늦습니다.

고견을 부탁드립니다.

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

다른 쿼리로 만들 수 있겠지만요.

 

쿼리로만 보고 조언을 드리자면 order by 이거 반드시 desc 를 해야 하는게 아니라면, 빼세요.

distinct 가 order by 를 자동으로 합니다.

그리고 조회컬럼 2개 있자나요. 요거 index 만드세요. index sort 가 더 빠르겠지요.

 

테이블 구조를 모르니, 다른 쿼리로는 조언을 드리지 못하겠네요.

특정월이 있어 그 안에 날짜대로 있는지? 없는지를 찾는 것이라면, 특정월의 날짜를 뽑는 쿼리와 조인하면 더 빠를 것 같네요.

수고님이 2012-05-04 15:53에 작성한 댓글입니다. Edit

어떤 사람에 대해서 일자별 자료 체크는 exist를 통해서 구현하시면 될듯한데요

select 'Y'

from 사람 a

where a.pid ='1111'

and exist(select 'Y'

                   from ipatord

                  where ....

                    pid = a.pid)

 order by 와 select 절의 distinct 필요 없을듯..

역지사지님이 2012-05-04 16:51에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39438쿼리 문의 드립니다. [2]
도시유목민
2012-05-07
4533
39437ORA-00600 [6749] 오류 [1]
니리
2012-05-07
4302
39436지난달, 현재달 한 row에 select하기 [1]
궁금
2012-05-04
4463
39435DISTINCT 질문입니다. [2]
물어보자
2012-05-03
4526
39434쿼리문 질문있습니다~~~!! [2]
나진산
2012-05-03
4647
39433구매횟수 계산 관련하여 문의 드립니다. [2]
고민남
2012-05-02
3698
39431날짜, 통화코드별 금액을 조회하려고 합니다... [1]
초보일때가 좋은...
2012-04-30
4119
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다