having 절 단독 사용 0 1 1,542

by inbeater [2019.03.08 21:27:13]


안녕하세요

 

 having절을 단독으로 사용한 쿼리가 있어서 질문 드립니다.

 

with t1 as ( select 1 c1, 'a' c2 from seqtbl union all

             select 2 c1, 'b' c2 from seqtbl union all

             select 3 c1, 'c' c2 from seqtbl union all

             select 4 c1, 'd' c2 from seqtbl           )

 

select '결함있음' gap

from t1

having count(*) <> max(c1);

 

위의 내용은 제가 테스트를 위해 만들어서 테스트 해본 데이터 입니다.

 

도대체, group by절에서 소그룹에 대한 지정 없이 사용 하였을 경우

 

having은 어떤 조건이 되는건가요

by 우리집아찌 [2019.03.11 09:39:16]
GROUP BY 가 없으면 전체행에대한 COUNT 값과 MAX값이 나오겠지요.

-- 완전 같지는 않지만 이해를 돕기이해서

with T1 as (
select 1 c1, 'a' c2 from DUAL union all
select 2 c1, 'b' c2 from DUAL union all
select 3 c1, 'c' c2 from DUAL union all
select 4 c1, 'd' c2 from DUAL 
)

SELECT '결함있음' gap
  FROM (SELECT count(*) CNT
             , max(c1)  C1
          FROM T1
        )
  WHERE CNT != C1 ;  

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입