반응형
~ 예제는 여전히 히어로 목록입니다 ~
GROUP BY
Syntax
SELECT column_name, ... ,agg_functions FROM table_name WHERE condition GROUP BY column_name;
사용 예제
SELECT tier, COUNT(*) FROM table_name GROUP BY tier;
그룹 함수 (집계 함수)
: COUNT, SUM, AVG, MIN, MAX
SELECT tier, COUNT(1), AVG(class), MAX(class), MIN(class)
FROM myhero GROUP BY tier ORDER BY AVG(class) DESC;
# COUNT(*) : 하나의 행을 하나로
# COUNT(1) : 하나의 값을 하나로 - 값이 null일 경우 위와 다른 결과 나올 수 있음
HAVING
- 가져올 데이터 그룹에 조건을 지정
- WHERE
과 비슷하지만 조건식에 그룹 함수를 활용
Syntax
SELECT column_name, ... , agg_functions FROM table_name
WHERE condition GROUP BY column_name HAVING condition
사용 예제
SELECT tier, COUNT(1), AVG(class), MAX(class), MIN(class)
FROM myhero GROUP BY tier HAVING AVG(class) >= 500;
쿼리 순서
# 쿼리 작성 시
SELECT ~ FROM ~ WHERE ~ GROUP BY ~ HAVING ~ ORDER BY
# 쿼리 실행 시
FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY
반응형
'Database > MySQL' 카테고리의 다른 글
[MySQL] 외래 키(Foreign Key)란? (1) | 2024.10.10 |
---|---|
[MySQL] 조건문 - IF / IFNULL / CASE~WHEN (0) | 2024.10.10 |
[MySQL] 문자열 함수 / 숫자 함수 / 날짜, 시간 함수 (0) | 2024.10.10 |
[MySQL] 데이터 정렬 & 순위 매기기 - ORDER BY / RANK() / DENSE_RANK() / ROW_NUMBER() (0) | 2024.10.10 |
[MySQL] 데이터 생성, 읽기, 수정, 삭제 - INSERT / SELECT / UPDATE / DELETE (0) | 2024.10.10 |