728x90
aegispro님 | 튜닝 | 2013-10-05 02:00:48
테이블 디자인은 아래와 같구요. (밑줄이 primary keys입니다.)
ET_STAT_DTL_TB (ET_NUM, ET_STAT_SEQ_NUM, ET_STAT_TS, ET_STAGE_CD, ET_STAT_CD, ET_RSN_CD, ET_ASGN_USER_ID_NUM)
원하는 결과는 ET_STAGE_CD별로 Count를 얻고 싶어요
카운드 코드
100 01
88 02
99 03
등등등..
(1) SELECT COUNT(ET_STAGE_CD), ET_STAGE_CD
FROM (
SELECT DTL.ET_NUM, DTL.ET_STAGE_CD, DTL.ET_STAT_SEQ_NUM,
ROW_NUMBER() OVER(PARTITION BY DTL.ET_NUM, DTL.ET_STAGE_CD ORDER BY
DTL.ET_STAT_SEQ_NUM DESC) ROWNUM
FROM SCHEMA.ET_STAT_DTL_TB DTL
) X WHERE ROWNUM = 1
GROUP BY ET_STAGE_CD
(2) SELECT
COUNT(STAT.ET_STAT_CD), STAT.ET_STAGE_CD
FROM SCHEMA.ET_STAT_DTL_TB STAT
WHERE STAT.ET_STAT_SEQ_NUM =
(
SELECT
MAX(STAT_TMP.ET_STAT_SEQ_NUM)
FROM NCAPRPRD.ET_STAT_DTL_TB STAT_TMP
WHERE STAT_TMP.ET_NUM = STAT.ET_NUM
)
GROUP BY STAT.ET_STAGE_CD WITH UR
첫번째 질문은
(1)과 (2)중에서 어느쪽이 성능면에서 더 유리한지요 ? 아니면 별 차이가 없는 지요?
두번째 질문은
(1)과 (2)의 결과물이 다르게 나오는 데...(1) 혹은 (2) 쿼리에 어떠 오류가 있는 지 전문가 분들의 의견을 듣고 싶습니다
| |||||||||
| |||||||||
| |||||||||
| |||||||||
| |||||||||
| |||||||||
|
728x90
'Db2 > KDUG 2013 Q·A' 카테고리의 다른 글
쿼리 구문에 대한 질문사항입니다. (0) | 2013.12.23 |
---|---|
tablespace 관련 질문 (0) | 2013.12.23 |
코스트가 낮은데도 속도가 안나와요... (0) | 2013.12.23 |
버퍼풀과 테이블스페이스에 대해 질문드립니다,. (0) | 2013.12.23 |
rollforward 질문 (0) | 2013.12.23 |