쌍용 강북 교육센터 국비학원 Day 26일차
GROUP BY 절
보통 그룹함수와 함께 사용되어지고 같은 컬럼끼리의 연산이 필요할 때, 컬럼의 값이 같은것 끼리 그룹을 짓는다. 특정 컬럼을 기준으로 집계를 내는데 사용된다. order by 와 마찬가지로 컴마를 이용해 1차, 2차적으로 사용 가능하다. 또한 그룹으로 묶을 컬럼 값을 select 문에도 지정해주어야 한다.
GROUPING, ROLLUP, CUBE, GROUPING SETS
grouping - 그룹핑이란 그룹으로 되어져있는지를 확인하는 명령어이다. 값을 출력해보면 0 또는 1만 나오는데 해당 칼럼이 그룹로 이루어져(묶여) 있으면 1, 없으면 0을 나타낸다.
요약값 (rollup, cube, grouping sets)
- group by rollup (a, b, c) 는 grouping sets( (a,b,c), (a,b), (a), ( ) ) 와 같다.
group by rollup (a, b) 는 grouping sets( (a,b), (a), ( ) ) 와 같다.
- group by cube (a, b, c) 는 grouping sets( (a,b,c), (a,b), (b,c), (a,c), (a), (b), (c), ( ) ) 와 같다.
group by cube (a, b) 는 grouping sets( (a), (b), (c), ( ) ) 와 같다.
HAVING (그룹함수 조건절)
group by 절을 사용하여 그룹함수의 값을 나타내었을때, 그룹함수의 값이 특정 조건에 해당하는 것만 추출하고자 할 때는 where 절을 사용하는 것이 아니라 having 그룹함수 조건절을 사용 해야한다. (select 문의 처리순서 때문)
누적에 대한 TIP
누적으로된 값이 필요로 할 때 참고
sum (누적되어야 할 컬럼명) over (order by (누적되어질 기준이 되는 컬럼명) asc (or desc) )
sum (누적되어야 할 컬럼명) over (partition by (그룹화 되어질 컬럼명) order by (누적되어질 기준이 되는 컬럼명) asc (or desc) )
ntile 관련 참고 블로그 - https://goldswan.tistory.com/25
'DB > Oracle' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 28일차 Oracle (JOIN, INNER, OUTER, EQUI, SELF) (0) | 2023.02.10 |
---|---|
쌍용강북교육센터 국비 학원 Day 27일차 Oracle (Sub Query, JOIN) (0) | 2023.02.09 |
쌍용강북교육센터 국비 학원 Day 25일차 Oracle (VIEW, 그룹함수) (0) | 2023.02.07 |
쌍용강북교육센터 국비 학원 Day 24일차 Oracle (Primary Key, Sequence, Like 연산자, 단일 행 함수) (0) | 2023.02.06 |
쌍용강북교육센터 국비 학원 Day 23일차 Oracle (HR 스키마 활용하기, Oracle, sqldevelop) (0) | 2023.02.03 |