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 인데
어떤 이유로해서 그차이(내부적인 처리?)가 있는지 아무리 찾아봐도 답이안나와
이렇게 여쭤봅니다.
감사합니다.
저는 당연하다고 생각하는데.. 내부적인 처리야 모르겠지만 WHERE 1=2의 조건만 있다면 1=2의 조건을
만족하는 데이터가 없으므로 COUNT에는 0이 나올 것이고 SUM에는 데이터 자체가 없으니 NULL이
나오겠죠. GROUP BY를 했을 경우 GROUP BY 절에 있는 컬럼을 기준으로 COUNT를 할 것인데
GROUP을 지어야할 데이터 자체가 없으니 그룹을 만들 수가 없고 따라서 결과 ROW도 없겠죠.
예 너무 어렵게 생각했던것같습니다. 감사합니다.
1번은 전체 집계라 데이터가 없어도 집계는 되구요. 2번은 그룹별 집계라 그룹이 없으면 집계가 안되요.
집계별로 짚어주시니 도움이 많이 됬습니다. 감사합니다.