Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 파이썬 #python #전역변수 #지역변수 #eval
- 파이썬 #python #모듈 #module #import #random #time #calendar #sys
- aws
- 프로그래머스
- 파이썬 #python #가변매개변수 #키워드가변매개변수 #args #kwargs
- 파이썬 #python #Comprehension
- 파이썬 #python #class #클래스 #상속
- docker
- redis
- 파이썬 #python #예외처리 #exception
- 파이썬 #python #enumerate
- 파이썬 #python #filter #map #reduce
- aw3
- PostgreSQL
- spring boot
- 배포
- 파이썬 #python #docstring
- 파이썬 #python #lambda #람다
- 파이썬 #python #os #os.path #glob
- EC2
- 파이썬 #python #file #i/o #input #output
- 파이썬기본문법 #파이썬 #python
- Git
- jsonb
- 파이썬 #python #함수 #function
- 연산자메서드
- 파이썬 #python #지역함수
- 사용자정의예외
- 약수 수하기
- 민감 정보 관리
Archives
- Today
- Total
Yeonnnnny
[2과목] 2-11. 그룹 함수 본문
■ 그룹함수
- 숫자함수 중 여러 값을 전달하여 하나의 요약값을 출력하는 다중행 함수
- 수학/통계 함수들 (기술통계 함수)
- GROUP BY 절에 의해 그룹별 연산 결과를 리턴함
- 반드시 한 컬럼만 전달
- NULL은 무시하고 연산
■ COUNT
- 행의 수를 세는 함수
- 대상 컬럼은 * 또는 단 하나의 컬럼만 전달 가능 (* 사용 시 모든 컬럼의 값이 널일 때만 COUNT 제외)
- 문자, 숫자, 날짜 컬럼 모두 전달 가능
- 행의 수를 세는 경우 NOT NULL컬럼을 찾아 세는 것이 좋음 (PK 컬럼)
ex) emp테이블의 전체 행의 수
select count(*)
from emp;
■ SUM
- 총 합 출력
- 숫자 컬럼만 전달 가능
ex) 급여의 전체 총 합
select sum(sal)
from emp;
■ AVG
- 평균 출력
- 숫자 컬럼만 전달 가능
- NULL을 제외한 대상의 평균을 리턴하므로 전체 대상 평균 연산 시 주의
■ MIN / MAX
- 최대, 최소 출력
- 날짜, 숫자, 문자 모두 가능 (오름차순 순서대로 최소, 최대 출력)
■ VARIANCE / STDDEV
- 평균과 표준편차
- 표준편차는 분산의 루트값
■ GROUP BY FUNCTION
- GROUP BY 절에서 사용하는 함수
- 여러 GROUP BY 결과를 동시에 출력(합집합) 하는 기술
- 그룹핑할 그룹 정의 (전체 소계 등)
1. GROUPING SETS(A, B, ...)
- A별, B별 그룹 연산 결과 출력
- 나열 순서 중요하지 않음
- 기본 출력에 전체 총계는 출력되지 않음
- NULL 혹은 0 사용하여 전체 총 합 출력 가능
ex) depno별 sal의 총 합 결과와 job별 sal의 총 합 결과의 합집합
select deptno, job, sum(sal)
from emp
group by GROUPING SETS(deptno, job);
** UNION ALL로 대체 가능
select deptno, null as job, sum(sal)
from emp
group by deptno
union all
select null as deptno, job, sum(sal)
from emp
group by job
ex) 부서별 급여 총 합과 업무별 급여 총 합, 그리고 전체 급여의 합을 출력
select deptno, job, sum(sal)
from emp
group by grouping sets(deptno, job, ());
2. ROLLUP(A,B)
- A별, (A,B)별 , 전체 그룹 연산 결과 출력
- 나열 대상의 순서가 중요함
- 기본적으로 전체 총 계가 출력됨
ex) deptno별, (deptno, job)별, 전체 연산 결과 출력
select deptno, job, sum(sal)
from emp
group by grouping sets(deptno, job);
** UNION ALL로 대체 가능
select deptno, job, sum(sal)
from emp
group by deptno, job
union all
select deptno, null as job, sum(sal)
from emp
group by deptno
union all
select null as deptno, null as job, sum(sal)
from emp;
3. CUBE(A,B)
- A별, B별, (A,B)별, 전체 그룹 연산 결과 출력됨
- 그룹으로 묶을 대상의 나열 순서 중요하지 않음
- 기본적으로 전체 총 계가 출력됨
select deptno, job, sum(sal)
from emp
group by cube(deptno, job);
** UNION ALL로 대체
select null as deptno, null as job, sum(sal)
from emp
union all
select null, job, sum(sal)
from emp
group by job
union all
select deptno, null, sum(sal)
from emp
group by deptno
select deptno, job, sum(sal)
from emp
group by deptno, job;
** GROUPING SETS로 대체
select deptno, job, sum(sal)
from emp
group by grouping sets(deptno, job, (deptno, job), ());
'SQLD' 카테고리의 다른 글
[2과목] 2-13. TOP N QUERY (0) | 2024.03.07 |
---|---|
[2과목] 2-12. 윈도우 함수 (0) | 2024.03.07 |
[2과목] 2-10. 집합 연산자 (2) | 2024.03.06 |
[2과목] 2-9. 서브쿼리 (0) | 2024.03.06 |
[2과목] 2-8. 표준 조인 (0) | 2024.03.06 |