record logo record

GROUP BY와 HAVING

HAVING과 GROUP BY은 다음과 같은 syntax를 따릅니다.

SELECT column-names
  FROM table-name
 WHERE condition
 GROUP BY column-names
HAVING condition

예를 들어 다음과 같은 테이블이 있다고 하자.

SELECT *
FROM member;

db-sql-groupby_having_1

GROUP BY

SELECT
    c1, c2,..., cn, aggregate_function(ci)
FROM
    table
WHERE
    where_conditions
GROUP BY c1 , c2,...,cn;

GROUP BY 예제

테이블에서 team 별로 그룹짓고 각 team(1,2,3,5)에 몇명이 있는지 count 하는 예제입니다.

SELECT team, count(*)
FROM member
GROUP BY team;

결과는 다음과 같습니다.

db-sql-groupby_having_2

HAVING

HAVING 예제

위의 예제에서, 각각 team 안에 2명 이상인 경우를 예제로 보여드리겠습니다.

SELECT team, count(*)
FROM member
GROUP BY team
HAVING count(*) > 2;

결과는 다음과 같습니다.

db-sql-groupby_having_3

References

SQL 테스트 해보기