티스토리 뷰
오라클 9 이상에서 된다고 하는군요..
SYS_CONNECT_BY_PATH 쓰면 됩니다.
예제 2) 이번에는 deptno 와 같이 그룹으로 나뉘는 컬럼이 2개(deptno,job) 일 때를 고려해 보자. (group by deptno, job) 3개 이상도 비슷한 방법으로 해결한다. 즉 아래의 테이블을, 10 CLERK MILLER 10 MANAGER CLARK 10 PRESIDENT KING --------------------------- 20 ANALYST FORD 20 ANALYST SCOTT 20 CLERK ADAMS 20 CLERK SMITH 20 MANAGER JONES --------------------------- 30 CLERK JAMES 30 MANAGER BLAKE 30 SALESMAN ALLEN 30 SALESMAN MARTIN 30 SALESMAN TURNER 30 SALESMAN WARD 아래와 같이 출력이 되도록 쿼리를 만들어 보자. 10 CLERK MILLER 10 MANAGER CLARK 10 PRESIDENT KING 20 CLERK ADAMS,SMITH 20 ANALYST FORD,SCOTT 20 MANAGER JONES 30 CLERK JAMES 30 MANAGER BLAKE 30 SALESMAN ALLEN,MARTIN,TURNER,WARD 쿼리는 아래와 같다. 1번 예제의 쿼리에서 추가된 부분을 눈여겨 보자. SELECT deptno, job, SUBSTR (MAX (SYS_CONNECT_BY_PATH (ename, ',')), 2) path# FROM (SELECT deptno, job, ename, ROW_NUMBER () OVER (PARTITION BY deptno, job ORDER BY ename) rnum FROM emp) START WITH rnum = 1 CONNECT BY PRIOR rnum = rnum - 1 AND PRIOR deptno = deptno AND PRIOR job = job GROUP BY deptno, job * 글쓴이 : 김홍선 * 위 내용을 이 곳에서 처음 보신분은 다른 곳에 게재하실 때 반드시 출처를 밝혀주시기 바랍니다. * 위 내용에 관해서 잘못된 부분이 있거나 질문이 있으신 분은 답글로 알려주시기 바랍니다. |
||
|
다른 예)
select i_customercd
, i_itemcd
, SUBSTR(XMLAGG(XMLELEMENT(A,', ' || q_orderqty) ORDER BY d_orderday).EXTRACT('//text()'),3) qty --row를 한 Column으로
, SUBSTR(XMLAGG(XMLELEMENT(A,', ' || d_orderday) ORDER BY d_orderday).EXTRACT('//text()'),3) day
from tcst_dailyorder
where i_customercd = '0000001'
and i_agent = '111111'
and d_orderday between '20091001' and '20091015'
group by i_customercd, i_itemcd
- Total
- Today
- Yesterday
- 뇌
- 챔픽스
- 100일
- 의료
- 금단증상
- 냄새
- 믹스커피
- 오라클
- 단백질
- 보건소
- 금연
- 인공지능
- 지진
- 통신
- 흡연
- DNA
- 유전자
- 상식
- 다이어트
- 윈도우10
- 생명과학
- 설탕
- 금연일기
- 과학
- 챔픽스 후기 금연
- 챔픽스 후기
- java
- 보건
- oracle
- 부작용
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |