Concat 함수의 예
CONCAT() 함수를 스크립트 키워드 CONCATENATE와 혼동하지 않아야 합니다.
Concat()은 가장 간단한 형식으로, 값/단어/선택 내용을 하나의 문자열로 묶거나 합치는 데 사용됩니다. 또한 다양한 문제를 해결하는 데에도 다양한 방식으로 활용할 수 있습니다. 모든 예는 다음 테이블을 기준으로 합니다.
Table | MyColumn | Date | Value |
---|---|---|---|
Data | JKL | 01/01/2012 | 11 |
Data1 | WVX | 01/02/2012 | 13 |
Data | GHI | 01/03/2012 | 13 |
Data | ABC | 01/04/2012 | 15 |
Data1 | STU | 01/05/2012 | 18 |
Data1 | PQR | 01/06/2012 | 10 |
Data1 | MNO | 01/07/2012 | 25 |
Data | DEF | 01/08/2012 | 11 |
단순 문자열 연결
앞서 설명한 대로, concat 함수를 사용하여 값 목록을 함께 묶을 수 있습니다. 이 값은 하드코드되거나 선택 내용/데이터에 따라 결정될 수 있습니다.
=CONCAT(MyColumn,',')
=CONCAT(DISTINCT MyColumn,',')
이 단순 concat 문은 MyColumn 열에서 사용 가능한 모든 값을 서로 묶습니다. 여기에 DISTINCT 키워드를 추가하는 것을 고려할 수 있습니다. 그러면 각각의 값이 문자열에서 한 번만 표시됩니다.
ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX
단순 concat를 사용할 때 문자열 값이 사용자가 선택한 열로 정렬되도록 함수에 정렬 가중치를 추가할 수 있습니다. 아래 예에서는 값 정렬을 위해 날짜 열이 추가되었습니다.
=CONCAT(MyColumn, ',', Date)
결과: JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF
표현식/Set 문 내에서 Concat() 사용
집합 분석 표현식에 다수의 동적 값 전달
값의 동적 선택 내용을 set 문에 전달하고자 할 경우가 있습니다. 그러려면 CONCAT() 함수가 예를 들어 'JKL', 'VWX'를 반환하도록 문자열에 작은따옴표를 추가해야 합니다. 하지만 작은따옴표는 set 표현식이 평가될 때가 아니라 Concat가 평가될 때 해석되므로 작은따옴표를 그대로 사용할 수 없습니다. 대신 Chr() 함수를 사용해야 합니다.
=CONCAT(Chr(39)&MyColumn&Chr(39),',')
그 다음 이 concat 문을 표현식 내부로 전달할 수 있습니다.
=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)
대부분의 경우 데이터 섬이 존재할 때 이 기법이 사용됩니다. 이 기법을 사용하면 데이터 섬 테이블이 조인되지 않으므로 데이터 모델의 어떤 부분에도 영향을 주지 않는 표현식에 값을 전달할 수 있습니다.
스크립트 내의 Concat()
Concat는 또한 스크립트 내에서 다른 집계처럼 다수의 행을 단일 열 값으로 변환하는 데 사용할 수도 있습니다.
앞서 사용한 소스 데이터를 기억해보면 스크립트측 CONCAT의 결과는 다음과 같습니다.
다음은 이 스크립트 함수의 결과입니다.
Table | CombinedData |
---|---|
Data | ABC,DEF,GHI,JKL |
Data1 | MNO,PQR,STU,WVX |
Rank()를 사용하여 Concat()에 영향 주기
concat()와 함께 다른 함수를 사용하면 빈틈없는 결과를 얻을 수 있습니다. 이 예에서는 Rank()를 사용하여 상위 3개 성과(Value 기준)를 포착하고 서로 묶습니다.
=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')
결과: ABC,MNO,STU