티스토리 뷰

(구)개발

ORACLE GROUPING_ID, ROLLUP을.ARABOJA(예제)

살아남자제발 2019. 2. 19. 15:51




사실 제목과 달리 알아보자는 취지보다


통계쿼리 짜다가 써본김에 그냥 아는 선에서만 적어보는 것이므로


추가적인 정보는 다른 갓갓티스토리를 통해서 알아보도록 하자.



※ 현업의 실쿼리와 데이터를 업로드할 순 없기때문에 간소화 시켜보았다.












-쿼리와 결과-


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SELECT
GROUPING_ID(REQ_NM) AS GID 
,CASE WHEN REQ_NM IS NULL THEN
CASE
GROUPING_ID(REQ_NM)
WHEN 0 THEN '미입력' //신청자이름은 없는데 GROUPING_ID가 0이면
WHEN 1 THEN '합계' //신청자이름은 없는데 GROUPING_ID가 1이면
END
ELSE REQ_NM //위 조건에 걸리지 않으면 모두 신청자명
END
AS idName
,SUM(DECODE(REQ_CD,'1',1)) AS NUM1 //신청코드를 구분지어 SUM
,SUM(DECODE(REQ_CD,'2',1)) AS NUM2
,SUM(DECODE(REQ_CD,'3',1)) AS NUM3
,SUM(DECODE(REQ_CD,'4',1)) AS NUM4
FROM
DATA_TABLE
GROUP BY ROLLUP(REQ_NM)
ORDER BY GID
 
cs



GID

IDNAME

NUM1

NUM2

NUM3

NUM4

0

아무개1

(NULL)

(NULL)

1

(NULL)

0

아무개2

(NULL)

1

(NULL)

(NULL)

0

아무개3

(NULL)

1

(NULL)

(NULL)

0

아무개4

1

(NULL)

1

(NULL)

0

아무개5

1

(NULL)

(NULL)

(NULL)

0

아무개6

(NULL)

1

(NULL)

(NULL)

0

아무개7

3

(NULL)

(NULL)

(NULL)

0

아무개8

1

(NULL)

(NULL)

(NULL)

0

아무개9

4

(NULL)

(NULL)

(NULL)

0

아무개10

1

(NULL)

(NULL)

(NULL)

0

아무개11

1

(NULL)

(NULL)

(NULL)

0

아무개12

3

(NULL)

(NULL)

(NULL)

0

아무개13

1

1

(NULL)

(NULL)

0

미입력

19

9

(NULL)

(NULL)

1

합계

35

13

2

(NULL)








최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함