일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 오라클
- 코딩테스트
- pandas
- python3
- level 2
- 프로그래머스
- 데이터 분석
- 빅분기
- 튜닝
- R
- 카카오
- SQL
- sklearn
- 실습
- Numpy
- 머신러닝
- Python
- 실기
- Oracel
- matplotlib
- Kaggle
- 파이썬
- seaborn
- oracle
- level 1
- 빅데이터 분석 기사
- 알고리즘
- Today
- Total
라일락 꽃이 피는 날
[Oracle] 복수행 함수 - 집계함수 본문
집계 함수
- max : 최댓값 출력
- min : 최솟값 출력
- avg : 평균 출력
- sum : 총 합계 출력
- count : 갯수 출력
예제 1. 사원 테이블에서 최대 월급을 출력
select max(sal)
from emp;
예제 2. 사원 테이블에서 최대 월급과 직업이 같이 나오게 출력
select job, max(sal)
from emp
where job = 'SALESMAN';
이렇게 작성하면 job 은 여러 개가 나오려고 하고, max(sal) 은 하나가 나오려고 하기 때문에 에러가 난다.
그래서 다음과 같이 group by 를 사용해야 한다.
select job, max(sal)
from emp
where job = 'SALESMAN'
group by job;
group by 절은 grouping 을 해주는 역할을 한다.
코딩 순서 : select → from → where → group by
실행 순서 : from → where → group by → select
예제 3. 사원 테이블에서 최소 월급을 출력
select min(sal)
from emp;
예제 4. 사원 테이블에서 커미션의 평균 값을 출력
select avg(comm)
from emp;
550은 커미션을 다 더해서 14로 나눈 값이 아니라 4로 나눈 값이다.
group 함수는 null 값을 무시하기 때문에 전체 사원 수 14가 아닌 4로 나눈다.
예제 5. 사원 테이블의 월급의 토탈 값을 출력
select sum(sal)
from emp;
예제 6. 직업, 직업 별 토탈 월급을 출력하는데, 월급이 5000 이상인 것만 출력
select job, sum(sal)
from emp
where sum(sal) >= 5000
group by job;
where 절에는 그룹 함수로 검색 조건을 줄 수 없다.
그룹 함수로 검색 조건을 주려면 where 절 말고 having 절을 사용해야 한다.
select job, sum(sal)
from emp
group by job
having sum(sal) >= 5000;
having 절은 항상 group by 절 다음에 위치한다.
having 절에는 group 함수에 대한 검색 조건만 사용한다.
다른 검색 조건을 줘도 에러는 나지 않지만 검색 성능이 느려진다.
예제 7. 사원 테이블의 전체 건수를 출력
select count(*)
from emp;
예제 8. 보이스 피싱 범인들이 사용하는 단어인 “본인”이 몇 번 나오는지 출력
select sum(regexp_count(voice_text, '본인'))
from voice;
regexp_count 함수는 기존 count 함수로는 카운트 할 수 없는 결과를 볼 때 사용한다.
위와 같이 text 속에서 단어의 개수를 count 할 때 유용한 함수다.
'프로그래밍 > Oracle' 카테고리의 다른 글
[Oracle] 데이터 분석 함수 1 - 순위/등급/넘버링 (0) | 2022.05.30 |
---|---|
[Oracle] select 문의 6가지 절 (0) | 2022.05.30 |
[Oracle] 단일행 함수 - 일반 함수 (0) | 2022.05.27 |
[Oracle] 단일행 함수 - 변환 함수 (0) | 2022.05.26 |
[Oracle] 단일행 함수 - 날짜 함수 (0) | 2022.05.25 |