2016-12-02 7 views
0

하나의 열에 여러 개의 다른 열과 함께 이름이있는 데이터 집합이 있습니다. 필드의 다른 모든 값이 같은 곳을 표시하고 이름을 연결하고 싶습니다.동일한 필드에서 여러 행의 값을 결합하여 집계

col 1 col 2 col 3 
    a  1  mary 
    a  1  jane 
    a  1  kevin 
    b  2  mary 
    b  2  jane 
    b  2  kevin 
    c  3  mary 
    c  3  jane 
    c  3  kevin 

출력 할 수 있습니다 : 나는 시도

a  1  mary, jane, kevin 
b  2  mary, jane, kevin 
c  3  mary, jane, kevin 

는 RTRIM 사용하지만 아무것도하지 않습니다. 또한 listagg를 사용하여 시도했지만 '표현으로 그룹이 아님'오류가 발생합니다.

모든 필드는 문자열이며 계산할 수 없습니다.

TIA

+0

당신은'listagg'을 사용할 필요가 알고있다. 현재 시도를 보여줄 수 있습니까? –

+0

'listagg()'를 시도 할 때 "표현에 의해 그룹이 아님"오류가 발생하면'GROUP BY' 절을 추가하려고 했습니까? 더 초등,'listagg()'를 시도해도 작동하지 않으면 'Oracle listagg'와 같은 검색 구문을 사용하여 Google을 사용 했습니까? 오라클 문서에이 함수가 무엇인지에 대한 설명, 적절한 구문 및 몇 가지 예가 나와 있습니다. 오라클 설명서를 인터넷으로 검색하는 습관을 가지면이 웹 사이트만큼이나 도움이 될 것입니다. – mathguy

답변

3

자세한 사항은 here

select col1, 
     col2, 
     listagg(col3,  -- The aggregated column 
       ',')  -- The delimiter 
     within group -- Because this is an aggregated function, needs to be grouped 
     (order by Col3) -- We can order the aggregated values 
      as Col3  -- And an alias for good measure 
from TableA 
group by col1, col2