티스토리 뷰
1. GROUPING() - 역할
그룹핑 쿼리에 사용하는 함수로 컬럼 값이 NULL일 경우 1 , NULL이 아닐 경우 0을 반환합니다
2. GROUPING() - 기본 테이블
◈ TEST_TABLE_ONE
IDX |
NAME |
ID |
DEPT |
AMT |
1 |
테스트1 |
test1 |
test_d1 |
1000 |
2 |
테스트2 |
test2 |
test_d1 |
2000 |
3 |
테스트3 |
test3 |
test_d2 |
2000 |
4 |
테스트4 |
test4 |
test_d2 |
4000 |
5 |
테스트5 |
test5 |
test_d2 |
5000 |
3. GROUPING() - SQL 문장
◈ SQL
1
2
3
4
5 |
SELECT DEPT
,SUM(AMT)
,DECODE(GROUPING(NAME),1,'부서합계',NAME) AS NAME
FROM TEST_TABLE_ONE
GROUP BY ROLLUP(DEPT,NAME) |
|
◈ 결과 테이블
|
◈ 설명
ROLLUP을 활용하여 DEPT와 NAME을 기준으로 누적 합계를 구하는 부분에서 이름이 없는 경우 즉 NAME 컬럼이 NULL 일 때 1을 반환합니다 그래서 위에서 처럼 DECODE를 활용하여 1일 경우에는 '부서합계'라고 NAME 컬럼을 채워 줍니다
|
'[개발]프로그래밍 > sql' 카테고리의 다른 글
[oracle] WITH - 인라인 뷰를 응용한 서브쿼리 (0) | 2016.11.02 |
---|---|
[oracle] GROUPING SETS - 개별 집계 함수 (0) | 2016.11.02 |
[oracle] LAG,LEAD - 이전 로우,이후 로우 값 반환 (0) | 2016.10.31 |
[oracle] FIRST_VALUE(),LAST_VALUE() - 처음과 마지막 로우 (0) | 2016.10.28 |
[oracle] 윈도우 함수 - 그룹 속의 작은 소그룹 (0) | 2016.10.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday