반응형
having 은 group by 절 에 포함됩니다. group by ... having ... 이딴식으로 쓰이죠.. having 만으로는 쓰여지진 않겟죠...
쉽게 생각하면 group by 절에서 사용하는 where 절 이라고 보시면 됩니다. ( 참 쉽죠잉? 개뿔~ -.-;;;)
where 절에 사용하는 조건들이 group by 보다 먼저 적용되니 group by 로 그룹핑 한후의 시점에서 조건을 걸때 사용합니다.
예를들어...
select
이름, count( 이름 ) as 갯수
from 테이블이름
where 지역 = '서울'
group by 이름
having count(이름) > 1;
위는 지역이 서울인 사람들 에서 이름으로 그룹핑해서 이름과 레코드수를 표시해주는데 having 절이 없으면 모든 레코드를 표시해주겟죠... 위의 예는 중복된 사람을 찾기 위함인데 count(이름) 이 1 이면 중복이 아니겟죠? 그러면 count(이름) 이 1보다 큰사람만 보기 위해서 having 으로 조건을 줍니다.
그럼 count(이름) 을 where 절에 넣으면 되지 않겟냐?? ... 위에서도 언급은 했지만 where 절이 그룹핑 이전의 시점에 적용되기때문에 집계함수 ( count, sum, avg 같은것들.. 통계함수 라고도 함..) 를 사용할수 없다는것이죠...그래서 having 에사용하는데 having 에는 집계함수만 사용할수 있습니다
'프로그래밍 > Mysql' 카테고리의 다른 글
MySQL ENUM 사용 (0) | 2013.12.25 |
---|---|
MySql 오늘 날짜만 쉽게 좀 뽑아보자~ (0) | 2013.11.18 |
[MySQL] DB 쿼리결과 개수 제한하기 - Limit 연산자 (0) | 2013.11.18 |
오늘날짜를 기준으로 이전날짜의 데이터를 가져오려면 sql쿼리문 (0) | 2013.11.18 |
MySQL 함수를 활용한 날짜비교 쿼리문 작성하기 (0) | 2013.11.13 |
Mysql comment 달기 (주석달기) (0) | 2013.11.13 |
[MySQL] 기본 사용법 및 예제 (0) | 2013.11.05 |
펌자료) mysql 명령어 모음 (0) | 2013.11.04 |