1. 집계함수 사용은 두가지 방식으로 사용됩니다.
- Group By 가 있는 경우와 없는 경우
2. Group By 가 없는 경우
- 전체를 대상으로 집계하기 때문에 데이터가 없어도 값이 나옵니다.(1 Row)
- 전체라고하는 명확한 대상이 존재하기 때문이구요.
3. Group By 가 있는 경우
- 대상 그룹별로 집계를 합니다.
- 그런데 대상 그룹 자체가 없다면? 집계 결과도 없습니다.
4. 결과 차이에 대한 이해
- Null 이 1건 조회되는 것과(1 Row)
- 결과가 아예 없는 것(0 Row) 은 다릅니다.
5. 해결방안은
- 그룹기준 별로 모두 0이 나와야 한다면?
- 그룹기준에 대한 별도 집합이 있어야 하고
- 이를 기준으로 아우터조인해야 합니다.
- 그룹이 어차피 하나밖에 없는 경우?
- 불필요하게 Group By 를 사용한 경우입니다.
- Group By 구문을 제거합니다.