🧐단일행함수
모든 행을 각각 하나씩 바꿀 수 있다.
🧐다중행함수
모든 행에 걸쳐서 결과값으로 하나를 출력해낸다.
- 레코드 개수가 동일해야한다.
여러 행을 바탕으로 하나의 결과 값을 도출해 내기 위해 사용하는 함수입니다.
SUM 함수를 사용하여 급여 합계 출력하기

SUM 함수를 사용하여 사원 이름과 급여 합계 출력하기(오류 발생)

자주 사용하는 다중행 함수
1) 데이터의 합을 구하는 함수
2) 추가 수당 합계 구하기
3) SUM 함수와 DISTINCT, ALL 함께 사용하기
ALL: 모든 값 (기본값) - 중복이 있어도 합쳐짐
DISTINCT: 유일한 값 - 중복제거

1) 데이터 개수를 출력하는 데 사용
SELECT COUNT(JOB), COUNT(DISTINCT JOB) FROM EMP;
-- COUNT(ALL JOB): 14 / COUNT(DISTINCT JOB): 5
2) NULL이 데이터로 포함되어 있을 경우, NULL 데이터는 반환 갯수에서 제외

참고) 전체 데이터 개수: COUNT(*)

🔼 페이지 번호 구할때도 전체 레코드 개수가 필요하다. 이런경우 사용함

MAX(): 최대값
MIN(): 최소값
1) 부서 번호가 10번인 사원들의 최대 급여 출력하기
2) 부서 번호가 10번인 사원들의 최소 급여 출력하기
3) 부서 번호가 20인 사원의 입사일 중 제일 최근 입사일 출력하기
4) 부서 번호가 20인 사원의 일사일 중 제일 오래된 입사일 출력하기

AVG(): 평균

1) 부서 번호가 30인 사원들의 평균 급여 출력하기
2) DISTINCT로 중복을 제거한 급여 열의 평균 급여 구하기
1) 여러 데이터에서 의미 있는 하나의 결과를 특정 열 값으로 묶어서 출력할 때 데이터를 '그룹화' 한다고 표현

🔼 3개의 레코드가 출력되는데 이렇게만 출력하면 어떤 부서인지 알 수 없음

🔼통계 개수와 레코드의 개수가 동일하기 때문에 SELECT문에 작성 가능
2) 문법
3) GROUP BY절에 명시하는 열은 여러 개 지정할 수 있습니다.
4) GROUP BY를 사용하여 부서별 평균 급여 출력하기
5) 부서 번호 및 직책별 평균 급여로 정렬하기

🔼 공통적인 값(DEPTNO+JOB) 그룹화해서 평균 출력
📚📌위에서 SUM은 다중행함수로써 하나의 행에 출력 결과를 담아야 해서 ENAME과 같이 출력할 수 없었지만 그룹화를 해서 레코드 개수가 같아지면 그룹화한 해당 컬럼들을 같이 출력할 수 있다.
1) 다중행 함수를 사용하지 않은 일반 열은 GROUP BY절에 명시하지 않으면 SELECT 절에서 사용할 수 없다는 것
2) GROUP BY절에 없는 열을 SELECT절에 포함했을 경우
-> 오류
1) HAVING 절은 SELECT문에 GROUP BY절이 존재할 때만 사용할 수 있습니다.
2) GROUP BY절을 통해 그룹화된 결과 값의 범위를 제한하는 데 사용
3) GROUP BY 절과 HAVING절을 사용하여 출력하기

1) WHERE절은 출력 대상 행을 제한하고(집계함수 x), HAVING절은 그룹화된 대상을 출력에서 제한


2) HAVING절 대신 WHERE절을 잘못 사용했을 경우
-> 오류

부서별 통계 내기 !

잘 쓰진 않음ㅎㅎ

