티스토리 뷰
오라클 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
- 믹스커피
- 지진
- 상식
- 흡연
- 금연일기
- 부작용
- 챔픽스 후기 금연
- 통신
- oracle
- 다이어트
- 금연
- 단백질
- 100일
- 챔픽스
- 유전자
- 의료
- 챔픽스 후기
- 생명과학
- java
- 과학
- 설탕
- DNA
- 윈도우10
- 금단증상
- 보건소
- 오라클
- 냄새
- 인공지능
- 보건
- 뇌
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |