데이터베이스구조 (humanlist)
name |
age |
gender |
job |
홍길동 |
21 |
M |
soldier |
김춘자 |
33 |
F |
CEO |
방태순 |
18 |
F |
student |
윤호상 |
23 |
M |
nurse |
장지태 |
27 |
M |
doctor |
GROUP 함수의 종류
- count / sum / avg / max / min / stddev(표준 편차 출력) / variance(분산 값 출력)
- 사용예시
: select count(*), count(age) from humanlist;
- group by (특정 조건으로 세부적인 그룹화 하기)
: select name, avg(nvl(age,0)) "avgerage" from humanlist group by name;
- having() (그룹핑한 조건으로 검색하기)
: select name, avg(nvl(age,0)) from humanlist group by name having avg(nvl(age,0)) > 20;
- rollup() (자동으로 소계와 합계 구하기)
: select --- from --- group by rollup(a, b);
- cube() (소계와 전체 합계 출력)
: select --- from --- group bu cube(a,b);
- grouping sets
: select --- from --- group by grouping sets(a,b);
- list agg (문자열 가로 정렬)
: select ---, listagg(---,'구분자') within group(order by ---);
=> group by 절 사용시 주의 사항
1. select 절에 사용된 그룹함수 이외의 컬럼이나 표현식은 반드시 group by 절에 사용되어야 한다
2. group by 절에는 반드시 컬럼명이 사용되어야 한다
3.
복수행 함수
- pivot (행과 열로 이루어진 표 출력)
: select --- from (select --- from ---) pivot (--- for --- in ('속성이름' as '표시이름'), .... 하략) order by ---;
: pivot (행을 열로) / unpivot (열을 행으로)
- decode (pivot 대용 기능)
: select decode(---, '열이름', 내용) 열이름 from ---;
- lag (전 행 값 추출)
: select lag(---, 오프셋, 기본 출력 값) over(order by 정렬할 컬럼) from ---;
- lead (다음 행 값 추출)
: select lead(---, 오프셋, 기본 출력 값) over (order by 정렬할 컬럼) from ---;
- rank (순위 출력)
: select rank() within group(order by 조건컬럼) from ---;
: select rank() over(order by 조건컬럼) from ---;
- dense_rank (중복포함 순위)
: select dense_rank()over(order by 조건컬럼) from ---;
- row_number (행번호 출력)
: select row_number() over (order by 조건컬럼) from ---;
- sum() over (누적 값 출력)
: select sum(컬럼명) over (order by 조건컬럼) from ---;
- ratio_to_report (비율 구하기)
: select round((ratio_to_report(sum(---)) over ())*100,2) from ---;
'Database > MySQL' 카테고리의 다른 글
SQL- DDL과 DML, DCL에 대한 기초 (0) | 2020.12.15 |
---|---|
SQL - JOIN의 종류 (inner join, outer join) (0) | 2020.12.15 |
SQL - 단일행 함수 (3) : 일반 함수 (0) | 2020.12.14 |
SQL - 단일행 함수 (2) : 숫자 함수, 날짜 함수, 형변환 함수 (0) | 2020.12.14 |
SQL - 단일행 함수 (1) : 단일행 함수와 사용법 (0) | 2020.12.14 |