통계 쿼리문을 만들땐 group by 절이 절대적으로 필요합니다.
그런데, 이 group by 절의 옵션격인 having 절을 이용하면
더욱 용이하게 통계를 뽑을 수 있다는 사실, 알고계셨나요?
전 몰랐었네요.
몰라서 매번 프로그래밍으로 루프 돌려서 처리하곤 했었는데, 조건절만 있어도 할 수 있었다니..
//
select stc_cdma_num '전화번호', sum(stc_travel_charge) '요금'
from STC_travel_data
group by stc_cdma_num order by 2 desc
//
위 쿼리로 조회된 내역에서 합계금액이 20만원이 넘는 것만 조회하고 싶을때 사용하면 됩니다.
즉, group by 의 where를 거는 셈인거죠.
having절을 몰랐을 때는 어떻게 구했찌? 안구했나?
아무튼 직접 having 절을 이용해 쿼리 작성하여 실행을 해보는게 제일 이해가 빠를거 같습니다.
//
select stc_cdma_num '전화번호', sum(stc_travel_charge) '요금'
from STC_travel_data
group by stc_cdma_num having sum(stc_travel_charge) > 200000
order by 2 desc
//
Having 절이 없었다면 아마도 서브쿼리 또는 여러번의 Select 구문을 통해 복잡한 쿼리를 만들어야 했겠지만, having절을 이용하여 쉽게 해결할 수 있었습니다.
다음 에는 Rollup 에 대해 알아보도록 하겠습니다.
2018/03/09 - [IT/DB] - MSSQL 통계 작성할때 유용한 Group by 절의 Rollup
댓글