-- 숫자가 길어서 대충 999 -- 계산식도 길어서 그냥 '계산식'으로 기입 SELECT COUNT(CASE LOGSEQ WHEN 999 THEN 1 END) AS COUNTMAXMAL , MIN(CASE LOGSEQ WHEN 999 THEN NULL ELSE LOGSEQ END) AS MINLOGSEQ , MAX(CASE LOGSEQ WHEN 999 THEN NULL ELSE LOGSEQ END) AS MAXLOGSEQ , COUNT(CASE LOGSEQ WHEN 999 THEN NULL ELSE 1 END) AS COUNTLOGSEQ , MIN(CASE WHEN NVL(LOGSEQ,0) != 999 AND NOT EXISTS(SELECT 1 FROM CCADMIN.TT_06_USER_COUNT B WHERE B.USERCOUNT = A.FT_CASHEGROUP AND B.CASHEGROUP = 계산식) THEN LOGSEQ END)--LOGSEQ가 NOT NULL 속성이라면 NVL 불필요 , MAX(CASE WHEN NVL(LOGSEQ,0) != 999 AND NOT EXISTS(SELECT 1 FROM CCADMIN.TT_06_USER_COUNT B WHERE B.USERCOUNT = A.FT_CASHEGROUP AND B.CASHEGROUP = 계산식) THEN LOGSEQ END) FROM CCADMIN.TT_06_837332_L A
여기 계산 많은 분들이 질문 올리면 개인 시간 투자해서 답변 작성합니다.
저도 업무시간에 잠시 시간 나면 답변 달고요.
첨부터 상황을 자세히 적어주셨으면 많은 분들이 시간 낭비할 필요도 없었습니다.
제일 중요한 부분(쿼리 변경 불가)은 빼고 질문 올리셨으니
적어주신 정보로만 쿼리 작성해드렸던 거고요.
댓글로 쿼리 불가라는 정보를 뒤늦게 알려주셨으니
저는 동적일 때는 방법 없고 고정일 때는 방법 있다고 알려드렸는데
거기에다가 동적으로 바뀐다고 말한 적 없다느니 그렇게 적어놓으시니 드린 말씀입니다.
입장 바꿔놓고 생각해보시고요.
더 이상 댓글 달지 않겠습니다.
기분 아주 드럽네요.
by 임상준님
말씀 감사드립니다.
네 맞습니다. 대부분이 질문에 잘못이 있지요.
저역시 위에도 말씀 드렸지만 인정하는 부분입니다.
만약 jkson 이분이 변경안되는데 튜닝을 어떻게 하려고 하냐고 단정적으로 얘기 하지 않았다면 저역시 먼저 정보 부족해서 미안하다고 답했을겁니다. 그게 매너죠 알고있습니다.
단정적으로 말하시니까 저역시 sql변경 방법 말고도 다른방법도 있다고 단정적으로 답이 나간거구요.
여러사람 시간 낭비하게 하지 말라는 말을 듣고는 기분이 정말 더럽게 된건 저역시 마찬가지입니다.
서로 얘기를 얘기를 나누다가 부족한 부분이 있으면 아 이런게 부족했네요 먼저 말해주셨으면 좋았을텐데. 이런건 어떤가요 라는 얘기의 흐름이 이렇게 힘든가 싶습니다.
서로 부족한 부분 나누자고 만든 장소 아닌가요? 저라면 커뮤니티에서 상대한테 어떤 상황에서도 사람 시간 낭비시키지말라는 말은 안하겠습니다.
그리고 아무쪼록 그런식의 말을 할생각이 조금이라도 있다면 답글은 안다는게 도와주는거라거 생각합니다.
저도 더이상 글을 쓰지는 않을거 같네요.
변경 안 되는데 튜닝하려 하냐는 의미로 단정적으로 이야기한 것 아닙니다.
만약 그렇다면 프로파일을 통한 튜닝방법을 설명하지도 않았을 것이고요.
어떠한 것도 단정적으로 이야기한 것 없습니다.
설명이 없으니 SQL변경 안 되는 상황에서 프로파일을 통한 튜닝에 대한 질문인지,
만약 그러한 질문이라면 방법에 대한 질문인지 어떤 건지에 대해 여쭤본 거고요.
제가 아는 범위 안에서 동적인 쿼리와 고정 쿼리일 때를 나눠서 설명 드렸는데
동적 쿼리는 이야기한 적도 없는데 답변한다는 식으로 이야기하시니
기분이 나빴던 것이고요.
시간 내서 답글 달았는데 그런식으로 댓글 다시니 저 역시
시간낭비하게 하지 말라고 무례하게 답글 달았습니다.
이점 죄송합니다.
온라인 상에서 댓글로 이야기 나누어보았자 서로 자기 주장만 하고 기분만 상할 뿐
해결점을 찾기 어려워서 되도록 논쟁이 생기면 답글을 달지 않습니다만,
제가 잘못한 부분은 죄송하다 말씀드리는 게 나을 것 같아 답글 답니다.