Group by 와 공집합의 차이... 0 4 2,115

by 기그스 [2015.01.28 11:32:53]


안녕하세요.

궁금한것이있어 여쭤봅니다.

select count(*), sum(a)

from dual

where 1=2

조건일때 와

group by 절을 넣었을때

1. where 절만있을때는 0, null

2. group by 절이있을때는 0 row 인데

어떤 이유로해서 그차이(내부적인 처리?)가 있는지 아무리 찾아봐도 답이안나와

이렇게 여쭤봅니다.

감사합니다.

 

 

by jkson [2015.01.28 11:47:17]

저는 당연하다고 생각하는데.. 내부적인 처리야 모르겠지만 WHERE 1=2의 조건만 있다면 1=2의 조건을

만족하는 데이터가 없으므로 COUNT에는 0이 나올 것이고 SUM에는 데이터 자체가 없으니 NULL이

나오겠죠. GROUP BY를 했을 경우 GROUP BY 절에 있는 컬럼을 기준으로 COUNT를 할 것인데

GROUP을 지어야할 데이터 자체가 없으니 그룹을 만들 수가 없고 따라서 결과 ROW도 없겠죠.

 


by 기그스 [2015.01.28 13:26:22]

예 너무 어렵게 생각했던것같습니다. 감사합니다.


by 마농 [2015.01.28 13:23:55]

1번은 전체 집계라 데이터가 없어도 집계는 되구요.
2번은 그룹별 집계라 그룹이 없으면 집계가 안되요.


by 기그스 [2015.01.28 13:27:25]

집계별로 짚어주시니 도움이 많이 됬습니다. 감사합니다.

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