
# emp 테이블의 전체 연봉 합계
SELECT SUM(salary) FROM emp;
# emp 테이블의 그룹화한 연봉 합계
SELECT SUM(salary) FROM emp;
GROUP BY deptId;

# emp 테이블 중 최대 연봉
SELECT MAX(salary) FROM emp;
# 그룹화한 최대 연봉
SELECT deptId,MAX(salary) FROM emp
GROUP BY deptId;

# emp 테이블 전체 최소 연봉
SELECT MIN(salary) FROM emp;
# 그룹화된 최소 연봉
SELECT deptId,MIN(salary) FROM emp
GROUP BY deptId;

# 전체 평균 연봉
SELECT AVG(salary) FROM emp;
#그룹화한 평균 연봉
SELECT deptId,AVG(salary) FROM emp
GROUP BY deptId;

# 평균 연봉 소수점 있는거
SELECT e.deptId AS '부서번호', GROUP_CONCAT(e.name) AS '사원명',
AVG(salary) AS '평균연봉', MAX(salary) AS '최고연봉',
MIN(salary) AS '최소연봉', COUNT(id) AS '사원수' FROM emp e
GROUP BY deptId;
# 평균 연봉 소수점 없애기
SELECT e.deptId AS '부서번호', GROUP_CONCAT(e.name) AS '사원명',
TRUNCATE(AVG(e.salary),1) AS '평균연봉', MAX(salary) AS '최고연봉',
MIN(salary) AS '최소연봉', COUNT(id) AS '사원수' FROM emp e
GROUP BY deptId;


GROUP_CONCAT()GROUB BY를 통해 그룹화된 데이터를 하나로 합쳐서 조회할 수 있는 그룹 함수# 여러 컬럼 사용
SELECT <그룹화 할 컬럼>, GROUP_CONCAT(<합쳐서 보여줄 컬럼>)
FROM <테이블 명>
GROUP BY <그룹화 할 컬럼>
# 구분자 변경
SELECT <그룹화할 컬럼>, GROUP_CONCAT(<합쳐서 보여줄 컬럼> separator '<구분자>')
FROM <테이블 명>
GROUP BY <그룹화 할 컬럼>
# 중복 제거
SELECT <그룹화할 컬럼>, GROUP_CONCAT(DISTINCT <합쳐서 보여줄 컬럼>)
FROM <테이블 명>
GROUP BY <그룹화 할 컬럼>
# 정렬 (ORDER BY)
SELECT <그룹화할 컬럼>, GROUP_CONCAT(<합쳐서 보여줄 컬럼> ORDER BY <합쳐서 보여줄 컬럼>)
FROM <테이블 명>
GROUP BY <그룹화 할 컬럼>
SELECT <그룹화할 컬럼>, GROUP_CONCAT(DISTINCT<합쳐서 보여줄 컬럼> ORDER BY <합쳐서 보여줄 컬럼> separtor '<구분자>')
FROM <테이블 명>
GROUP BY <그룹화 할 컬럼>
TRUNCATE(숫자, 버릴 자릿수)
SELECT e.deptId AS '부서번호', d.deptName AS '부서명',
GROUP_CONCAT(e.name) AS '사원명', TRUNCATE(AVG(salary),1) AS '평균연봉', MAX(e.salary) AS '최고연봉',
MIN(e.salary) AS '최소연봉', COUNT(e.salary) AS '사원수' FROM emp AS e
INNER JOIN dept AS d
ON e.deptId = d.id
GROUP BY deptId;

AS 별칭을 넣으면 테이블 명을 다 입력하지 않고 별칭으로 입력할 수 있다.SELECT e.deptId AS '부서번호', d.deptName AS '부서명',
GROUP_CONCAT(e.name) AS '사원명', TRUNCATE(AVG(salary),1) AS '평균연봉', MAX(e.salary) AS '최고연봉',
MIN(e.salary) AS '최소연봉', COUNT(e.salary) AS '사원수' FROM emp AS e
INNER JOIN dept AS d
ON e.deptId = d.id
GROUP BY deptId
HAVING AVG(e.salary) >= 5000;

HAVING#부서번호 합치기
SELECT deptId AS '부서번호' FROM emp
UNION
SELECT id AS '부서번호' FROM dept;
