AVG (평균 출력)
→ 만약 출력했을때 소수점이 너무많아서 안나오게 하고싶다면 round 둘러준다.
특징
- NULL 값이 있을 경우 avg 는 계산할때 NULL 값을 빼고 계산한다.
→ 그룹함수의 특징이다.
예제 : 우리반 테이블에서 평균 나이를 출력하세요
select round(avg(age),1)
from emp14;
문제 : 직업, 직업별 평균월급 출력
select job, round( avg(sal))
from emp
group by job;
문제 : 커미션을 다 더해서(null 포함) 전체 사원수로 나누게 하려면 ?
select avg(nvl(comm,0))
from emp;
설명 : null 값을 0으로 치환하여 평균값을 출력한다.
문제 : class_type , class_type별 평균나이 출력
select class_type, round(avg(age))
from emp14
group by class_type;
부서번호, 부서번호별 평균월급을 출력 , 부서번호별 평균월급을 출력할때 천단위로 출력
select deptno, to_char(avg(sal), '999,999.99')
from emp
group by deptno;
→ 설명 : 소수점 뽑고싶으면 '. 99' 입력하면 된다.
문제 : 직업, 직업별 평균월급 , 세일즈맨은 제외하고 출력
select job, round(avg(sal))
from emp
where job != 'SALESMAN'
group by job;
문제 : 통신사, 통신사별 평균나이, 통신사별 평균나이를 출력할때 소수점 이하는 안나오게 반올림, 통신사별 평균나이가 높은것부터 출력 하시오.
select lower(telecom), round(avg(age)) as 평균나이
from emp14
group by lower(telecom )
order by 2 desc ;
'Oracle > SQL' 카테고리의 다른 글
SQL 다중행 함수 - 그룹함수 (Count) 건수 (0) | 2021.11.19 |
---|---|
SQL 다중행 함수 - 그룹함수 (SUM) 토탈값 (0) | 2021.11.19 |
SQL 다중행 함수 - 그룹함수 (MIN) 최소값 (0) | 2021.11.19 |
SQL 다중행 함수 - 그룹함수 MAX (최대값) (0) | 2021.11.19 |
SQL 단일행 함수 - 일반함수 ( case when ~ then~ else~end as ) 파생컬럼생성 (0) | 2021.11.19 |