GROUP BY절과 HAVING절은 SQL에서 그룹화된 데이터를 필터링할 때 사용하는 명령어이지만 용도와 위치의 차이가 존재함에 따라서 아래에서 설명을 진행하겠습니다.
GROUP BY 절
'GROUP BY'는 데이터를 특정 컬럼 값에 따라 그룹으로 묶을 때 사용 되고 SELECT 절에서 SUM, COUNT, AVG와 같이 각 그룹에서 원하는 통계적 정보를 추출할 때 사용이 가능합니다.
SELECT name, SUM(value)
FROM sales_data
GROUP BY name;
HAVING 절
'HAVING'절은 GROUP BY절로 그룹화된 데이터에 조건을 부여하여 필터링 할 때 사용합니다. WHERE절과 비슷하게 보이지만, 그룹화된 데이터에만 적용시킬수 있고, 위에서 설명한 집계 함수인 SUM, COUNT, AVG등에 대해서 결과를 적용 시킬 수 있습니다.
SELECT name, SUM(value) as total_value
FROM sales_data
GROUP BY name
HAVING total_value >= 100000;
즉. sales_data라는 데이터에서 name을 기준으로 데이터를 필터링을 하고, name별 총 팔린 금액을 필터링 한 후에, 총합계 금액이 100000을 넘는 메뉴만 보여달라는 명령어이다.
즉! GROUP BY는 데이터를 그룹화하는 데 사용되고, HAVING은 그룹화된 데이터에 조건을 걸어 필터링 할 때 사용되므로, 항상 GROUP BY가 먼저나오고 그 후에 HAVING절을 사용해야 한다.
'Codeit Sprint > Weekly_Paper' 카테고리의 다른 글
위클리 페이퍼#15 - 엔터티, 속성, 관계 (0) | 2024.11.24 |
---|---|
위클리 페이퍼#15 - 데이터베이스 정규화 (0) | 2024.11.24 |
위클리 페이퍼 #12 - K-폴드 교차검증 (0) | 2024.10.27 |
위클리페이퍼 #12 - 모델학습에서의 편향과 분산 (0) | 2024.10.27 |
위클리 페이퍼 #11 - 손실함수(Loss function) (0) | 2024.10.18 |