[DB] GROUP BY절 과 HAVING절
@욕심쟁이
·2020. 8. 10. 16:10
반응형
1. 문법
select column, group_function from table
[where condition]
[group by group_by_expression]
[having group_condition]
[order by column];
2. 그룹함수
- null값을 무시(null인값은 포함시키지 않음)
- count만 (*) 사용하여 null값 포함해서 출력됨
AVG (*|[DISTINCT|ALL]expr) |
평균 |
---|---|
COUNT (*|[DISTINCT|ALL]expr) |
행 갯수 |
MAX (*|[DISTINCT|ALL]expr) |
최대값 |
MIN (*|[DISTINCT|ALL]expr) |
최소값 |
STDDEV (*|[DISTINCT|ALL]n) |
표준편차 |
SUM (*|[DISTINCT|ALL]n) |
더하기 |
VARIANCE (*|[DISTINCT|ALL]n) |
분산 |
select avg(salary),
max(salary),
min(salary),
sum(salary)
from emp
where job_id like '%REP';
select count(commission_pct) from emp
where department_id=80;
//중복제거distinct 사용법
select count(distinct(commission_pct)) from emp
where department_id=80;
3. GROUP BY 절
- column에 대한 평균
- group컬럼을 제외하고는 다른 컬럼이 들어갈수 없음
select department_id,
avg(salary)
from employees
group by department_id;
//부서에대한 평균 급여
select department_id,
job_id,
sum(salary)
from employees
where department_id > 40
group by department_id, job_id
oreder by department_id;
//department_id 40이상이고 department_id, job_id을 그룹화하여 department_id순으로 출력
4. HAVING절
- having절은 group by의 조건(where 절은 행의 조건)
- having절 일반함수 못씀(무조건 group함수)
select job_id,
sum(salary) pay
from emp
where job_id not like '%REP%'
group by job_id
HAVIN SUM(salary) > 13000
oreder by sum(salary);
참고. ORACLE DB(부산아이티윌)
반응형
'IT > DB' 카테고리의 다른 글
[DB] MYSQL 데이터베이스 설정 (0) | 2020.08.18 |
---|---|
[DB] MYSQL 한글설정 (0) | 2020.08.18 |
[DB] SQL함수 (0) | 2020.07.31 |
[DB] 연산자 종류 (0) | 2020.07.31 |
[DB] (0) | 2020.07.17 |