[MySQL/DB] 집계함수와 그룹화(GROUP BY)DB2023. 1. 8. 12:41
Table of Contents
728x90
728x90
집계함수
NULL값은 집계하지 않는다.
함수 | 설명 |
MAX | 최대값 |
MIN | 최소값 |
SUM | 합계 |
AVG | 평균 |
COUNT | 개수 |
Oracle의 EMP 테이블로 사용해보자. 혹시 없다면 해당 링크에서 데이터를 추가하기 바란다.
SELECT MAX(SAL) FROM EMP;
SELECT MIN(SAL) FROM EMP;
SELECT SUM(SAL) FROM EMP;
SELECT TRUNCATE(AVG(SAL), 2) FROM EMP;
SELECT COUNT(COMM) FROM EMP;
>> 5000 / 800 / 29025 / 2073.21 / 4
그룹화(GROUP BY)
유형별 개수를 알고 싶을 때 데이터의 그룹화를 위해 사용하는 절이다.
WHERE절과 ORDER BY절 사이에 위치해야 한다.
사용하기
-- 기본
SELECT 컬럼
FROM 테이블
GROUP BY 그룹화할 컬럼;
-- 조건 처리 후 그룹화
SELECT 컬럼
FROM 테이블
WHERE 조건
GROUP BY 그룹화할 컬럼;
-- 그룹화 후 조건처리
SELECT 컬럼
FROM 테이블
GROUP BY 그룹화할 컬럼;
HAVING 조건
-- 조건 처리 후 그룹화 후 그룹화 한 데이터에 조건처리
SELECT 컬럼
FROM 테이블
WHERE 조건
GROUP BY 그룹화할 컬럼;
HAVING 조건
아래의 예시는 EMP테이블에서 부서번호를 기준으로 그룹화 하여 부서번호 별 사원수와 최대급여 최소급여 급여합계 평균급여의 값을 조회했으며 조회할 때의 컬럼명을 변경해 주었다.
SELECT DEPTNO 부서번호, COUNT(*) 사원수, MAX(SAL) 최대급여,
MIN(SAL) 최소급여, SUM(SAL) 급여합계, TRUNCATE(AVG(SAL), 2) 평균급여
FROM EMP
GROUP BY DEPTNO;
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!