섭섭의 공부/SQL
[MySQL] GROUP BY, HAVING 그룹 별 통계 내기
seobbseob
2021. 8. 2. 16:20
데이터 분석을 할 때, 전체 데이터를 몽땅 가져다가 요약 통계를 보는 경우는 흔치 않다.
성별에 대한 정보가 있는 데이터에 있다고 하자.
남녀 구분 없이 요약 통계를 보는 것보다 남성에 대한 요약 통계와 여성에 대한 요약 통계를 나누어서 보는 것이 비교하기에도 좋고 나아가 인사이트를 얻는데도 도움이 된다.
이처럼 SQL에도 그룹별로 데이터를 출력해주는 예약어가 있는데, 그것은 GROUP BY이다.
SELECT (column name1, column name2, ...)
FROM table name
WHERE( )
GROUP BY (field name)
--그룹 안에 그룹을 만들고 싶다면 ','로 연결하면 됨
여기서 주의해야 할 점이 있다.
WHERE은 GROUP BY가 실행되기 전에 실행된다는 점이다.
WHERE 절을 사용하면 WHERE의 조건들로 데이터가 걸러진 상태에서 GROUP BY가 실행된다.
GROUP BY가 이루어진 상태에서 조건을 걸고 싶을 수 있는데 이때는 HAVING을 사용한다.
HAVING 뒤의 칼럼은 SELECT뒤에 온 칼럼이 와야 한다.
SELECT (column name1, column name2, ...)
FROM table name
GROUP BY (field name)
HAVING (column name)
(참고 자료 - https://www.inflearn.com/users/@datarian 의 [백문이불여일타] 데이터 분석을 위한 고급, 중급, 기초 SQL)