having 절의 사용은 언제?
Posted 2008. 4. 14. 16:32이제까지 group by 는 count(*), sum(a.xxx) 과 같은 그룹함수를 사용할때 사용한다.
그런데 이들 count, sum의 결과를 where 절 조건절에 넣고 가져오려 할때는
sub query를 이용했다.
having을 거의 사용하지 않았었기에....
그런데 having에 대해서 찾아보니 굳지 서브쿼리를 사용하지 않아도
where 절에 들어가지 못하는 그룹함수를 이용한 조건이 사용된다는 점을 알고 테스트해보니...
비용(쿼리가 실행되는 속도..)도 비슷하고.. 쿼리도 깔끔하게 나와 앞으로 자주 사용해야겠다는 생각...
기존 : select a.count, a.idx
from ( select count(*) as count, idx
from board
group by idx) a
where a.count > 10
order by a.count desc ;
변경후 : select count(*) as count, idx
from board
group by idx
having count(*) > 10
order by count(*) desc;
그런데 이들 count, sum의 결과를 where 절 조건절에 넣고 가져오려 할때는
sub query를 이용했다.
having을 거의 사용하지 않았었기에....
그런데 having에 대해서 찾아보니 굳지 서브쿼리를 사용하지 않아도
where 절에 들어가지 못하는 그룹함수를 이용한 조건이 사용된다는 점을 알고 테스트해보니...
비용(쿼리가 실행되는 속도..)도 비슷하고.. 쿼리도 깔끔하게 나와 앞으로 자주 사용해야겠다는 생각...
기존 : select a.count, a.idx
from ( select count(*) as count, idx
from board
group by idx) a
where a.count > 10
order by a.count desc ;
변경후 : select count(*) as count, idx
from board
group by idx
having count(*) > 10
order by count(*) desc;
'DBMS' 카테고리의 다른 글
오픈소스 아파치 분산DB Cassandra 에 대한 소개링크 (0) | 2010.06.24 |
---|---|
SQL요약. (0) | 2010.05.11 |
Join에 대해서 알아보자 (0) | 2008.04.11 |
MySQL에서 greatest와 least를 이용하여 ranking 구하기... (0) | 2008.02.19 |
MySQL 실행계획, Explain 정보보는법 (0) | 2008.02.10 |
- Filed under : DBMS