그룹 함수 ( = 집계 함수)는 단일 행 함수와 달리 여러 행에 대해 함수가 적용되어 하나의 결과를 나타내는 함수.
COUNT : null 행도 셈을 유의
SELECT SUM(salary) 합,
AVG(salary) AS 평균,
ROUND(SUM(salary) / COUNT(salary),2) AS 계산평균
FROM employees
null 값은 어떻게 되는가 ..? count 는 null 값도 친다는데 , 그럼 avg 함수를 썼을 때랑 count 써서 직접 계산했을 때랑 값이 다르게 나올 수도 있는가?
이렇다고 한다 .
AVG 함수는 null 값을 제외하고 연산하는데, null 값을 포함해서 평균을 계산해야 하는 경우에는 NVL 함수를 사용하여 AVG(NVL(salary, 0)) 형태로 null 값을 치환해야 정확한 값이 계산됨
이렇다면 두 값이 같겠네 .
GROUP BY
HAVING
SELECT job_id,
SUM(salary) 직무별급여합,
AVG(salary) 직무별급여평균
FROM employees
WHERE employee_id >=10
GROUP BY job_id
HAVING 직무별급여합 > 30000
ORDER BY 직무별급여합 desc, 직무별급여평균
저 한글로 되어있는 부분을 함수로 바꿔주면 에러없이 잘 뜬다 .
SELECT job_id,
SUM(salary) 직무별급여합,
AVG(salary) 직무별급여평균
FROM employees
WHERE employee_id >=10
GROUP BY job_id
HAVING SUM(salary) > 30000
ORDER BY SUM(salary) desc, 직무별급여평균
'SQL > 모두의SQL' 카테고리의 다른 글
모두의 sql 7장 서브쿼리 (0) | 2021.07.24 |
---|---|
6장 조인과 집합 (0) | 2021.07.18 |
4장 함수 : 02 단일 행 함수 - 5 일반함수 (0) | 2021.07.15 |
4장 함수 : 02 단일 행 함수 - 2 숫자 타입 함수, 3-날짜타입함수 (0) | 2021.07.05 |
목차 - 계획 (0) | 2021.07.04 |