2013-04-09 7 views
1

지금까지 쿼리를 게시 할 필요가 거의 없었습니다. 거의 모든 것이 가능합니다. 이것이 나의 첫 번째 질문이다.쿼리 별 Oracle SQL 그룹, 종류 PIVOT

는 내가 말할

alarmdb ------------------ INT_ID --------- 나는 아래 표 이름이 다른 요구 사항이 -------------------------------------------- ALARM_NUMBER ----- -----------------------

   101212121        7762 
      101212121        8212 
      101212121        3423 
      101313131        7734 
      101313131        7743 

기본적으로 그룹화 및 피벗 방식입니다. 최종 출력은 이와 같을 수 있습니다.

------------------ INT_ID --------------------------- -------------------------- ALARM_NUMBER ----------------------- -----

   101212121       7762,8212,3423 
      101313131        7734,7743 

많은 셀 데이터를 하나로 축소하는 종류.

누구든지 제안 할 수 있습니까?

+1

어떤 버전을

당신은 오라클 11g +에 대한 LISTAGG를 사용할 수 있습니까? – Taryn

답변

2

오라클 버전에 따라 다른 옵션이 있습니다.

select int_id, 
    listagg(alarm_number, ', ') within group (order by int_id) as alarm_number 
from yourtable 
group by int_id; 

SQL Fiddle with Demo

참조 또는 이전 버전 wm_concat()를 사용할 수 있습니다 : 오라클의

select int_id, 
    wm_concat(alarm_number) as alarm_number 
from yourtable 
group by int_id 
+0

WM_CONCAT()은 문서화 된 함수가 아니므로 프로덕션 코드에 의존해서는 안됩니다. – APC

+0

사용 방법을 알려주십시오, wm_concat이 지원되지 않습니다. 아래 버전을 게시하고 있습니다. –

+0

오라클 데이터베이스 10g 엔터프라이즈 에디션 출시 10.2.0.5.0 - 64bi PL/SQL 릴리스 10.2.0.5.0 - 생산 "CORE \t 10.2.0.5.0 \t 생산" TNS Linux 용 : 버전 10.2.0.5.0 - Production NLSRTL 버전 10.2.0.5.0 - Production –