group by 절은 말 그대로 출력구문을 그룹으로 묶어주는 역할을 한다.
그리고 group by 절은 집계함수들과 같이 사용하는데 집계함수는 나중에 따로 정리해야겠당.

일단 예제

select userID, amount from buyTbl order by userID; 
위 구문은 buyTbl 에서 userID와 구매 갯수를 가져오는 쿼리문이다. 

물론 이런식으로 출력해도 총 갯수를 구할 수는 있지만 결과가 따로따로 나오기 때문에 보기에 불편하다. 
이때 group by절과 집계함수를 사용해주면 우리가 원하는 결과를 얻을수 있다.
select userID, sum(amount) from buyTbl group by userID; 

이렇게 userID로 아이디를 묶어주고 총 갯수도 sum함수를 이용하면 우리가 원하는 출력값을 얻을수있다. 

having절은 group by 절에서 where과 같은 역할을 한다. 이때 having절은 group by절 뒤에 와야한다.

select userID, sum(price*amount) from buyTbl 
group by userID having sum(price*amount) > 1000; 
 
having 절을 사용해 sum(price * amount)의 범위를 1000초과로 지정해줬다.

 

'SQL > mysql' 카테고리의 다른 글

AUTO_INCREMENT  (0) 2017.09.19
집계 함수  (0) 2017.09.19
ANY & ALL & SOME  (0) 2017.09.08
관계 연산자 BETWEEN & AND & IN & LIKE  (0) 2017.09.08
WHERE  (0) 2017.09.08