Skip to Content
AboutSpotfireTransformation

Transformation

pagePassword: True

계산된 컬럼

데이터 테이블의 기존 데이터 컬럼을 기반으로 계산하여 데이터에 대한 추가 정보를 얻을 수 있습니다.계산에는 수학 및 논리 표현식이 포함될 수 있습니다.계산의 결과를 노출하는 한 가지 방법은 계산을 새 데이터 컬럼에 값으로 추가하는 것입니다. 새 데이터 컬럼이 데이터 테이블에 추가되고 컬럼을 표시할 새 필터가 만들어집니다.따라서 다음을 수행할 수 있습니다.

  • 시각화 축에서 컬럼 선택
  • 추가 계산에 컬럼 포함
  • 원하는 계산된 값으로 필터링 일반적으로 새 데이터 컬럼의 계산은 일회성 계산입니다.즉, 일단 값이 계산되면 결정이 되며 필터링으로 변경되지 않습니다.하지만 데이터를 새로 고치면 값이 다시 계산됩니다.

계산된 컬럼 편집

계산된 컬럼을 만든 후에는 확장된 분석의 데이터 플라이아웃 또는 데이터 캔버스에서 해당 컬럼을 편집할 수 있습니다.

시작하기 전에

최소 하나의 계산된 컬럼  이 있고 분석이 편집 모드에 있어야 합니다. 팁: 최종 데이터 테이블 노드를 클릭하고 데이터 캔버스 왼쪽 아래에서 계산된 컬럼을 나타내는 단계의 계산된 컬럼 편집

을 클릭하여, 데이터 캔버스  에서 계산된 컬럼을 편집할 수도 있습니다.

프로시저

  1. 작성 막대 에서 분석 내 데이터 를 클릭하고 원하는 컬럼을 클릭합니다.

  2. 확장된 플라이아웃에서 선택된 컬럼의 상세 정보 가 선택되어 있는지 확인합니다.

  3. 확장된 플라이아웃에서 표현식 섹션을 찾아서 편집을 클릭합니다.

  4. 표현식을 변경하고 완료되면 확인을 클릭합니다.표현식에 사용할 수 있는 방법 유형에 대한 자세한 내용은 함수  및 연산자 를 참조하십시오. 주: 계산된 컬럼의 경우에는 선택기를 사용하여 데이터 형식을 변경 할 수 없습니다. 대신 변환 함수  중 하나를 사용하십시오.

표현식 작성

새 데이터 컬럼에 결과를 추가하는 방법은 계산된 컬럼 추가 에서 설명합니다.계산할 항목을 지정할 때 합계나 평균과 같은 여러 집계 방법 을 사용하여 데이터를 그룹화하고 기존 데이터 컬럼을 기반으로 계산할 수 있습니다. 표현식을 해석 가능하게 만들려면 특정한 구문을 사용해야 합니다.구문에 대한 자세한 내용은 표현식 언어 상세 정보 을 참조하십시오.계산된 컬럼에 대한 표현식을 설정한 방법에 따라 계산된 컬럼은 데이터 테이블의 각 행에 대해 가로로 평가되거나 전체 컬럼에 대해 세로로 평가 됩니다. 나중에 컬럼 값 계산에 사용되는 표현식의 상세 정보를 보거나 편집하려면 분석의 데이터 플라이아웃에서 플라이아웃을 확장하여 선택한 컬럼의 상세 정보를 표시합니다.계산된 컬럼 편집 을 참조하십시오.또한 추가된 컬럼에 대한 정보를 데이터 캔버스 를 사용할 수 있습니다.

계산 직접 만들기

데이터를 분석하기 위해 다양한 데이터 컬럼, 집계 방법 및 시각화 속성을 사용하여 시각화를 설정합니다. 계산을 직접 수행하면 데이터에 대한 더 많은 정보를 검색할 수 있는 경우가 있습니다. 데이터에 대해 계산을 수행할 때는 하나 이상의 컬럼을 집계 방법 및/또는 수학 함수로 결합하는 표현식을 지정하여 결과를 얻습니다. 이 결과를 노출하는 방법은 다음의 여러 방법 중에서 선택할 수 있습니다.

  • 계산된 컬럼  계산된 컬럼을 사용하면, 표현식의 결과를 데이터 테이블에 추가되는 새 데이터 컬럼의 값으로 사용할 수 있게 됩니다. 이 컬럼은 다른 데이터 컬럼과 마찬가지로, 해당 데이터 테이블이 분석에 사용될 때마다 다양한 시각화 축 및 모든 시각화에서 선택할 수 있습니다. 또한 추가 계산에도 사용할 수 있습니다. 새 컬럼을 표시하기 위한 필터가 생성되기 때문에 컬럼에서 계산된 값을 필터링할 수 있습니다. 일반적으로 새 데이터 컬럼의 계산은 일회성 계산입니다. 즉, 일단 값이 계산되면 결정이 되며 필터링으로 변경되지 않습니다. 하지만 데이터를 새로 고치면 값이 다시 계산됩니다.
  • 사용자 지정 표현식  사용자 지정 표현식을 사용할 때는 지정된 표현식을 시각화의 축과 같은 현재 컨텍스트에 직접 적용합니다. 새 데이터 컬럼이나 필터가 생성되지 않으며, 시각화 축에 적용할 때는 다른 시각화에 영향을 주지 않습니다. 필터링 등을 통해 시각화 속성이 변경되면 사용자 지정 표현식이 사전 정의된 집계 방법과 동일한 방식으로 즉시 재계산됩니다. 따라서 사용자 지정 표현식은 사용자가 만든 집계 방법이라고 생각할 수 있습니다.

일반적인 구문

이러한 계산은 서로 다른 방법으로 사용되지만 계산할 항목에 대해 만드는 표현식은 두 방법 모두에 공통됩니다. 표현식 사용을 시작하려면 다음과 같은 기본적인 구문 규칙 을 알아야 합니다.

  • 데이터 컬럼은 꺽쇠괄호로 묶어야 합니다.
    • [Sales]
    • [Gender]
  • 집계 방법 뒤에는 괄호가 와야 합니다. 괄호 안에는 집계할 항목이 들어가며, 여기에는 둘 이상의 매개변수가 포함될 수 있습니다.
    • Sum([Sales])
    • Max([Temperature])
    • Rank([Result], “desc”) 계산된 컬럼 추가 및 사용자 지정 표현식 대화 상자의 예를 아래에서 볼 수 있습니다. 대화 상자에 액세스하는 방법은 계산된 컬럼 추가  및 사용자 지정 표현식 적용 에서 설명합니다.

팁: 입력하기 시작하면 자동 완성 기능이 입력된 문자와 일치하는 함수 또는 컬럼 이름을 제안합니다. 제안 사항을 클릭하면 표현식에 추가됩니다.


처음 데이터 가져오기 설정에서 여러 중요한것들 중하나가 데이터 유형 설정이이였다 String, inter, real, datetime 등 이있었다 여기 함수에서는 첫번째로 데이터 유형이 맞아여 적용이 가능하다 만약 가겨오기 설정에서 놓쳤다면 약간의 귀찮은 과정을 거져야하는데

데이터 형식 변경, 표현식에서 함수로 싸주기, 분석의 데이터에서 설정을 하는 방법이있다


결측치 대체

텍스트 관련 함수

시계열 관련 함수

Qiz


사용자 지정 표현식

사전 정의된 집계 방법만으로 제한되지는 않습니다. 표현식을 직접 만들어 시각화 축에 적용할 수도 있습니다.직접 만드는 사용자 지정 표현식에는 논리적 부분 및 수학이 포함될 수 있습니다.이러한 표현식을 축에 적용하면 사전 정의된 집계 방법과 마찬가지로 시각화에 즉시 반영됩니다. 시각화 축에서 선택을 하면, 액세스할 수 있는 간단한 사용자 지정 표현식이 자동으로 생성됩니다.예를 들어 이 막대 그래프 예제에서 각 컬럼 선택을 마우스 오른쪽 버튼으로 클릭하고 사용자 지정 표현식을 선택하면, 사용자 지정 표현식 대화 상자가 열리고 다음 표현식이 표시됩니다.

사전 정의된 집계 방법을 사용하거나 사용자 지정 표현식을 직접 만들어서 시각화 축이나 표현식을 언제라도 변경할 수 있습니다. 사용자 지정 표현식이 특정 시각화 축에 적용되기 때문에 현재 시각화에만 영향을 주며 분석의 다른 시각화에는 영향을 주지 않습니다.표현식의 결과는 데이터 테이블에 추가되지 않으며 이에 따라 분석의 어디에서도 사용할 수 없습니다. 필터링 등을 통해 시각화 속성이 변경되며 사용자 지정 표현식이 자동으로 다시 계산되며, 필터링 후 사용 가능한 데이터 행만 계산에 사용됩니다. 사용자 지정 표현식을 만드는 방법에 대한 자세한 내용은 사용자 지정 표현식 적용 을 참조하십시오.

사용자 지정 표현식은 사전 정의된 집계처럼 작동

사용자 지정 표현식은 사전 정의된 집계와 동일한 방식으로 작동하며, 사용자 지정 표현식은 시스템에 의해 사전 정의되는 것이 아니라 사용자가 설정한다는 차이가 있습니다.잘 알려진 집계인 평균(Avg) 및 동일한 결과를 제공하는 사용자 지정 표현식을 서로 비교하는 아래 예에서 그 유사성을 볼 수 있습니다. 이 데이터 테이블에는 네 개의 행이 포함되어 있습니다.평균 값은 (10+20+30+40)/4인 25입니다.

아래 막대 그래프에서는 선택된 사전 정의된 집계 Avg에 의해 결과가 시각화됩니다.

다음 막대 그래프에도 동일한 결과가 표시됩니다.하지만 사전 정의된 집계를 사용하는 것이 아니라 다음의 사용자 지정 표현식이 적용되었습니다. Sum([Value])/Count([Item])

주: 데이터를 필터링하면 두 막대 그래프 모두 즉시 조정되어 필터링된 데이터를 반영합니다.


슬라이싱 및 표식 개념

데이터 테이블의 데이터를 시각화하면 데이터가 여러 부분으로 슬라이스되며 이러한 각 부분은 시각화에 표식으로 표현됩니다. 표식의 예로는 테이블 셀, 막대 세그먼트, 파이 섹터, 맵 기능 또는 선 정점이 있습니다. 크기, 모양, 색 또는 숫자 값과 같은 여러 표식 특성이 사용되어 표식의 기반 데이터의 집계값을 나타냅니다. 표현식은 시각화에 정의된 슬라이스에 대해 작동하기 때문에, 슬라이싱 및 표식 개념은 사용자 지정 표현식의 이해에 매우 중요합니다. 특히 OVER 문 이 포함된 사용자 지정 표현식에 큰 영향을 미칩니다.

데이터 슬라이싱

시각화의 여러 속성을 지정하여 데이터를 여러 조각으로 슬라이스합니다. 예를 들어 X축의 여러 범주로 데이터를 슬라이스하거나, 여러 색이나 모양을 할당하여 데이터를 슬라이스할 수 있습니다. 사용 가능한 슬라이싱 속성은 시각화의 유형에 따라 따릅니다. 이러한 속성을 사용하여 데이터를 슬라이스할 때마다 데이터가 점점 더 작은 조각으로 분할되며 더 많은 수의 표식으로 표현됩니다. 아래 이미지에서 데이터 테이블의 데이터가 조각으로 분할되는 방식을 볼 수 있습니다. 큰 상자는 모든 데이터를 나타내고 큐브는 서로 다른 슬라이스를 나타내며, 여기서 각 데이터 행은 특정 슬라이스와 연결될 수 있습니다. 주: 일반적으로 데이터는 이 예제에서처럼 3개 차원으로 제한되지 않습니다.

다음 이미지는 시각화, 즉 크로스 테이블에서 데이터 슬라이스가 표현되는 방식을 보여 줍니다. 연도로 분할되지 않으며 크로스 테이블 셀의 값은 모든 연도를 포함하는 슬라이스에 대해 집계됩니다.

다음 예에서는 데이터 테이블의 판매 데이터가 여러 방식의 슬라이싱을 사용하여 산점도에 시각화됩니다.

실제로 슬라이싱을 선택하면 간단한 사용자 지정 표현식이 됩니다. 산점도에서 각 X축 선택기를 오른쪽 클릭하고 사용자 지정 표현식을 선택하면 해당 사용자 지정 표현식에 표현식 <>,<[Fruit]> 및 <[Year]>가 자동으로 설정된 것을 볼 수 있습니다. 같은 방법으로 Y축 선택기를 오른쪽 클릭하고 사용자 지정 표현식을 선택하면 대화 상자에 자동으로 Sum([Sales])이 표시됩니다. Sum과 같은 집계는 사전 정의된 사용자 지정 표현식입니다. 위의 산점도에서는 데이터 슬라이싱을 위해 X축 속성이 사용되었습니다. 하지만 아래와 같이 색, 모양 및 격자 등과 같이 슬라이스에 사용할 수 있는 다른 축 속성도 있습니다. 결론적으로 데이터를 다양한 방법으로 슬라이스할 수 있습니다. 그런 다음 이러한 슬라이스가 계산의 기반이 됩니다.

표식

위의 산점도 ‘기호’ 및 크로스 테이블 셀과 같은 표식은 데이터를 슬라이스한 방식을 나타내는 그래픽 개체입니다. 시각화를 설정한 방법에 따라 표식은 데이터 테이블의 모든 행부터 하나의 행까지 모든 것을 나타낼 수 있으며, 대개의 경우 그 값은 이전 예의 합계처럼 집계의 결과를 나타냅니다.

사용자 지정 표현식

사용자 지정 표현식은 사전 정의된 집계와 동일한 방식으로 작동합니다. 즉, 시각화의 각 표식에서 평가됩니다. 하지만 표현식에서 OVER 문 을 사용하여 현재 슬라이스 외부에서 데이터를 가져올 수도 있습니다.

  • OVER 문을 사용하여 데이터 슬라이스 참조 사용자 지정 표현식은 시각화에서 표식으로 표현되는 데이터의 슬라이스에 대해 평가됩니다. 현재 슬라이스 외부의 데이터도 표현식 평가에 포함하려는 경우에는 사용자 지정 표현식에 OVER 문을 사용합니다. 현재 슬라이스 외부의 데이터를 포함하는 것이 어떤 의미인지 알아보기 위해 아래 이미지를 참조하십시오. 사용자 지정 표현식, 특히 OVER 문이 포함된 사용자 지정 표현식으로 작업할 때 꼭 이해해야 하는 슬라이싱 및 표식 개념 을 설명할 때도 이와 비슷한 이미지가 사용됩니다. 큰 상자는 여러 지역에서 일부 과일 종류의 연간 판매량이 포함된 데이터 테이블에서 모든 행을 기호화하며, 큐브는 각 데이터 슬라이스를 기호화합니다.

    2018년 북부 오렌지 판매량(Sales of Oranges, North, 2018)을 2018년 서부 레몬 판매량(Sales of Lemons, West, 2018) 또는 2015-2017년 서부 오렌지 판매량(Sales of Oranges, West, 2015-2017)에 비교하고자 한다고 가정하겠습니다. 이러한 표현식에서는 2018년 북부 오렌지 판매량(Sales of Oranges, North, 2018) 외부의 데이터 슬라이스를 참조해야 하는데 이 때 OVER 문을 사용합니다. OVER 문을 사용하면 표현식에서 참조할 데이터를 그룹화하는 새로운 방법이 생깁니다. 표현식에서 OVER 문을 작성하는 방법과 작동 방식을 이해하는 가장 쉬운 방법은 예제를 사용하는 것입니다.

OVER 표현식의 예

주: 먼저, 다른 슬라이스를 참조하기 위해 표현식에 OVER 문을 사용할 때는 축의 데이터를 슬라이스하는 데 사용된 실제 컬럼을 참조하지 않습니다. 대신에 [Axis.X] 또는 [Axis.Color]처럼 축 자체를 참조합니다. 산점도는 각 과일, 즉 사과, 오렌지, 배의 판매량 합계를 보여 줍니다. 총 판매량은 300입니다.

표현식 Sum([Sales]) OVER (All([Axis.X])) 이 Y축에 지정된 경우 모든 표식이 재평가되어 산점도가 다음과 같이 변경됩니다.

결과를 이해하기 위해 사과 판매량 합계(Sum of Sales, Apples)를 나타내는 표식을 예로 들겠습니다. 사용자 지정 표현식은 표식을 재평가하여 모든 X축 슬라이스의 판매량 합계, 즉 사과, 오렌지 및 배 판매량의 합계(150+80+70)를 표시하도록 지시합니다. 다른 표식에도 동일한 작업이 수행되므로 모든 표식의 값이 동일해 집니다. 사실 표현식의 OVER (All([Axis.X])) 부분은 X축의 슬라이싱을 무시한다는 것을 의미합니다. 다음 예에서는 색상 축에 연도가 지정되므로 다른 데이터 슬라이싱이 수행됩니다.

Y축을 다음 표현식으로 변경합니다.

Sum([Sales]) OVER (All([Axis.Color]))

이 사용자 지정 표현식은 각 표식을 재평가하여 모든 색상 슬라이스의 판매량 합계를 표시하도록 지시하며 이는 실제로 색상별 슬라이싱을 무시합니다. 주: 위의 예에서 사용된 표현식은 메모리 내 데이터를 사용할 때만 작동합니다. 데이터베이스 내 데이터를 사용하는 경우에는 THEN 표현식이 필요합니다. 2015년 배(Pears, 2015)를 예로 들겠습니다(파란색 Pears 별). 표식의 새 값은 3년의 배 판매량 합계를 표시합니다(40+20+10). 과일 종류 내의 모든 표식은 색상(연도)에 상관없이 동일한 Y축 값을 취합니다. 위의 예제는 실용성은 없지만 소위 말하는 노드 탐색 방법과 OVER 문이 결합되어 작동하는 방식을 이해하는 데 좋습니다.

계산된 컬럼에서 OVER 문 사용

계산된 컬럼에서 OVER 문 사용 은 사용자 지정 표현식에서 사용할 때와 다르게 작동합니다. 계산된 컬럼에서는 레코드가 더 적어질 수 있습니다.


예시

  • 시간차이 계산

시간 차이의 계산

경우에 따라 데이터 테이블의 컬럼에 서로 다른 시점이 표시되지만 관심 있는 정보는 실제 시작 시점과 종료 시점이 아닐 수 있습니다. 대신 여러 기간의 지속 시간에 관심이 있을 수 있습니다. 아래 예에서는 시간 함수 를 사용하여 시간 차이를 계산하는 방법을 보여 줍니다.

DateDiff() 함수

아래 데이터 테이블에는 경주의 여러 참가자 번호에 대한 시작 시간과 종료 시간이 나열됩니다.

실제 시점은 중요하지 않고 그 결과가 중요합니다. DateDiff('Minute', [Start], [Stop]) 이 표현식을 계산된 컬럼 추가 대화 상자에 입력하면 시작 시간과 종료 시간 간의 시간 차이가 계산되어 분으로 표현됩니다.

DateTimeNow() 함수

DateTimeNow() 함수는 현재 시스템 시간을 반환합니다. 예를 들어 위에서 설명한 DateDiff 함수와 이 함수를 함께 사용하면, 사람의 생일을 알 경우 현재 나이를 계산할 수 있습니다.

DateDiff('year', [Date of birth], DateTimeNow()) 이 표현식을 Add calculated column 대화 상자에 입력하면 현재 시스템 시간과 생일 간의 시간 차이가 계산되어 년으로 표현됩니다. (아래 계산이 수행될 때의 현재 시스템 시간은 2018년 10월 31일이었습니다.)

  • 단순 변환

단순 변환 및 수식 계산

예를 들어 데이터 컬럼에서 값의 단위 변환을 수행하거나 수식을 사용하여 새 값을 계산한 다음 결과를 새 데이터 컬럼에 값으로 추가할 수 있습니다. 다음은 처음부터 데이터 테이블에서 사용 가능한 것보다 많은 정보를 검색할 수 있는 간단한 예제입니다. 기존 데이터 컬럼에 기반하여 새 데이터 컬럼이 계산되어 원래 데이터 테이블에 추가 됩니다.

통화 변환

아래에서는 데이터 컬럼의 유로화 금액을 1.16의 환율을 사용하여 USD로 변환합니다. 결과는 USD라는 이름의 새 컬럼에 추가됩니다.

주: 계산된 컬럼은 분석의 데이터 플라이아웃에서 즉시 사용할 수 있지만 테이블 시각화에 자동으로 표시되지 않을 수 있습니다. 테이블 시각화에 컬럼을 표시하려면 다음을 수행합니다.

  1. 테이블을 오른쪽 클릭하고 메뉴가 열리면 속성을 선택합니다.
  2. 팝오버에서 컬럼을 선택합니다.
  3. 컬럼 선택을 클릭합니다.
  4. 컬럼 선택 대화 상자의 사용 가능한 컬럼 창에서 계산된 컬럼을 선택하고 추가를 클릭합니다.
  5. 닫기를 클릭합니다.

BMI 계산

이 예제에서 왼쪽에 표시된 원래 데이터 테이블에는 여러 개인의 키(‘Height (m)‘)와 몸무게(‘Weight (kg)‘)가 나열됩니다. 이 데이터 컬럼을 기반으로 하여 체질량지수(BMI)를 계산할 수 있습니다. 수식 [Weight (kg)]/([Height (m)]*[Height (m)]) 을 계산된 컬럼 추가 대화 상자에 입력하면, 그 결과가 오른쪽 데이터 테이블에 새 데이터 컬럼으로 추가됩니다.

  • 순위

순위

데이터 테이블 내의 값에 순위 번호를 할당해야 할 수 있습니다. 순위는 여러 방법으로 매길 수 있으며 아래 예에서 그 중 몇 가지를 소개합니다.더 많은 옵션은 순위 함수 을 참조하십시오.

Rank()와 DenseRank()

아래 데이터 테이블에는 여러 사람의 시합 점수가 나열됩니다.점수 중 두 개가 동일하다는 것을 알 수 있습니다. 두 개의 계산된 컬럼이 순위 오름차순으로 추가됩니다. Rank([Points]) 및 DenseRank([Points])

값이 동일하면 두 함수가 다음 순위 숫자를 서로 다르게 처리합니다.

내림차순 순위

기본적으로 순위는 오름차순입니다.표현식에 'desc'를 추가하면 내림차순으로 변경할 수 있습니다. Rank([Points],'desc') 및 DenseRank([Points],'desc')

컬럼 내의 그룹에 개별적으로 순위 지정

시합에 참가한 두 그룹 a와 b가 있고 각 그룹의 순위를 따로 매겨야 한다고 가정하겠습니다.

이 경우에는 아래의 Rank([Points], [Group]) 표현식을 사용할 수 있습니다.그룹의 별도 순위를 더 쉽게 볼 수 있도록 하기 위해 ‘Group’ 컬럼을 정렬합니다.

  • 조건에 기반한 계산된 컬럼

조건에 기반한 계산된 컬럼

컬럼을 계산할 때 특정 조건의 충족 여부에 따라 표현식의 결과가 달라져야 하는 경우가 있습니다. 조건은 논리 함수 If() 또는 Case()를 사용하여 표현식에서 설정합니다.

If()

If() 함수를 사용할 때는 true 또는 false인 조건을 지정하고, 조건이 true일 때 반환할 항목과 false일 때 반환할 항목을 차례로 지정합니다.

다음 표현식의 의미는 아래와 같습니다. If(([Amount]<10),"low","high") 컬럼 ‘Amount’의 행 값이 10보다 작은 경우 값 ‘low’가 결과로 반환되지만, 값이 10 이상인 경우에는 값 ‘high’가 반환됩니다. 즉, 아래와 같습니다.

다른 말로 하면 If() 함수는 행을 두 그룹으로 나눕니다. 하나의 그룹은 지정된 조건이 true인(‘low’를 결과로 반환) 행으로 구성되며, 다른 그룹은 지정된 조건이 false인(‘high’를 결과로 반환) 행으로 구성됩니다. 주: 반환될 값이 집계된 값인 경우 두 그룹은 따로 처리됩니다. 아래 테이블에서 다음 표현식이 추가된 예제를 볼 수 있습니다. If(([Amount]<10),Avg([Amount]),Avg([Amount])) 이 표현식에는 평균 집계가 포함되어 있습니다. 이 경우 두 그룹 모두에 동일한 집계가 지정되었지만 서로 다른 집계를 사용할 수도 있습니다.

행 값이 10 미만인 경우, 즉 ‘true’ 그룹의 경우에는 평균 6이 반환되며((5+7)/2), ‘false’ 그룹의 경우에는 평균 13((14+10+15)/3)이 반환됩니다. if() 함수를 and 또는 or와 결합하여 사용할 수도 있습니다. 예를 들어 If(([Customer age]<20) and ([Gender]="Female"),"girl","other") 표현식은 아래의 추가된 계산된 컬럼으로 나타납니다.

Case()

조건 결과가 true 및 false로 제한되지 않는 표현식을 작성하려면 case() 함수를 사용할 수 있습니다. Case()는 두 가지 형식으로 사용할 수 있으며 아래에서 예제를 사용하여 모두 설명합니다. 예제 1 아래의 책과 비디오 가격이 각각 10%와 50% 할인되어 가격 목록을 업데이트해야 한다고 가정하겠습니다.

제품 유형에 따라 할인율이 다르기 때문에 case() 표현식을 사용하여 새 가격을 계산합니다.

case [Type] when "Book" then [Price]*0.9 when "Video" then [Price]*0.5 else [Price] end

여기서 case()는 ‘Type’을 표현식의 when 옵션 각각과 비교합니다. 예제 2 두 번째 예제에서는 case()를 사용하여 학생들의 시험 결과를 평가합니다. 평가 수준에는 Failed(총계가 100 미만), Passed 및 Excellent(총계가 160 이상)의 세 가지 수준이 있습니다.

이 예제의 Case()는 각 when 옵션마다 독립적으로 조건을 평가합니다.

case when ([Test A] + [Test B])<100 then "Failed" when ([Test A] + [Test B])>=160 then "Excellent" else "Passed" end

이 방법을 사용하면 예제 1에서보다 복잡한 조건을 구현할 수 있습니다. 결과 계산된 컬럼은 아래와 같습니다.

주: 두 case() 양식 모두에서 여러 개의 when/then 조건을 표현식에 포함할 수 있습니다.

조건 실행 순서

case() 표현식의 여러 부분은 위에서 아래 순서로 실행됩니다. 아래의 표현식과 결과 컬럼을 참조하십시오.

case when [Number]<40 then "yes" when [Number]<70 then "no" else "x" end

40 미만인 숫자는 ‘yes’로 설정되며 변경되지 않습니다. 70 미만의 숫자를 ‘no’로 설정하는 표현식의 다음 부분은 나머지 행에만 영향을 줍니다.


  • 계산괸 컬럼에서 Over 사용 - 문제 만들기

결과는 아래의 막대 그래프 및 데이터 테이블에서 볼 수 있습니다. [Weight (g)] - Sum([Weight (g)]) OVER (Previous([Week])) 주 단위 성장에 관심이 있다고 가정하겠습니다. 이 경우 다음 표현식을 사용하여 계산할 수 있습니다.

데이터 테이블에는 매주 측정된 신생아 체중이 나열되며 선 그래프에 시각화됩니다. 컬럼의 계산에 사용되는 표현식에서 OVER 문을 노드 탐색 방법 과 결합하여 사용할 수 있습니다. 이 예에서는 방법 중 하나인 Previous()를 사용하는 방법을 소개합니다.

계산된 컬럼에서 노드 탐색 방법과 OVER 결합

사실 이 값은 Sum([Sales])을 표시하는 막대 그래프에서 100% 스택 막대  옵션을 사용할 때와 동일합니다.

아래 막대 그래프에서는 Sum 집계를 사용하여 Value 축에서 계산된 컬럼이 선택되었습니다. 이 표현식은 해당 과일 종류 내에서 총 판매량에 대한 각 판매 거래의 연도별 상대적 기여도를 계산합니다. 예를 들어 2015년에는 총 사과 판매량의 15%(30/200)이고 2016년에는 35%(70/200), 2017년에는 나머지인 50%(100/200)입니다.

[Sales] / (Sum([Sales]) OVER ([Fruit])) 레코드가 더 적은 계산된 컬럼은 표준 컬럼으로 그다지 유용하지 않을 수 있습니다. 하지만 사용된 표현식의 일부로 이전 표현식이 포함된 다른 컬럼을 추가해 보겠습니다.

확장된 예제

주: 이후 데이터가 필터링될 때 새 컬럼 값은 변경되지 않습니다. 예를 들어 맨 위의 데이터 행이 필터링될 경우, ‘Apples’ 행의 계산된 컬럼 값은 계속 200입니다. 즉 각 행에 대해 해당 과일 종류의 총 판매량 합계가 새 컬럼에 표시됩니다. 예를 들어 사과의 총 판매량은 200(30+70+100)이므로 이 값이 모든 ‘Apples’ 행에 표시됩니다. 더 적은 값으로 슬라이스하는 효과입니다(200 및 100).

가 사용됩니다. Sum([Sales]) OVER ([Fruit]) 아래 데이터 테이블에서는 추가된 컬럼의 값 계산에 표현식 계산된 컬럼을 사용할 때는 사용자 지정 표현식 의 경우처럼 탐색에 사용할 수 있는 축이 없습니다. 대신 OVER 표현식을 사용하여 데이터 컬럼(또는 계층)을 참조합니다. 주: 계산된 컬럼은 데이터 필터링 방법에 상관없이 항상 컬럼의 모든 값에 대해 계산됩니다. 데이터에 대해 계산을 수행하고, 그 결과를 데이터 테이블에 추가된 새 컬럼에 값으로 표시할 수 있습니다. 계산에 사용된 표현식에서 OVER 문을 사용할 수 있습니다. 하지만 계산된 컬럼에서 OVER 문 사용은 사용자 지정 표현식에서 사용할 때와 다르게 작동합니다. 계산된 컬럼에는 OVER 표현식이 사용되어 여러 그룹에 대한 별도의 고정된 값을 계산하는데 OVER 표현식 사용 시 데이터가 더 적은 수의 레코드로 슬라이스될 수 있습니다.

계산된 컬럼에서 OVER 문 사용

  • OVER 표현식에서 집계 사용 표현식의 결과가 컬럼 값의 집계된 보기로 사용되어야 할 경우, 선택한 표현식 함수를 사용하여 출력을 결정합니다. 예를 들어 판매 수치가 포함된 컬럼을 요약해야 하면 표현식 필드에 Sum([Sales])을 입력합니다. 그러나 집계된 값을 OVER 표현식과 결합하면 데이터를 원하는 방식으로 분할할 수 있습니다.

중첩된 집계

중첩된 집계는 계산된 컬럼에서 사용될 때의 작동 방식과 사용자 지정 표현식에서 사용될 때의 작동 방식이 약간 다릅니다. 아래의 몇 가지 예를 참조하십시오. (아래 텍스트를 복사하여 붙여넣거나(설치된 클라이언트만 해당) 텍스트 파일로 저장하여 분석에서 데이터 테이블로 사용하고 직접 사용해 보십시오.) Region Product Sales EAST Phone 42 EAST Phone 118 EAST Chair 190 WEST Desk 19 WEST Chair 20 CENTRAL Phone 18 CENTRAL Desk 17 CENTRAL Desk 12 CENTRAL Desk 13 CENTRAL Chair 20

계산된 컬럼에서 지역별 최대 총 판매액

함수 내에 함수 호출을 작성하여 표현식의 출력을 완벽하게 제어할 수 있습니다. 둘 이상의 집계를 중첩할 수 있으며 중첩된 각 집계는 고유한 OVER 표현식을 가질 수 있습니다. 데이터 테이블이 필터링되는 경우, 계산된 컬럼에는 여전히 전체 데이터 테이블 기반의 값이 표시됩니다. 계산된 컬럼에서 OVER 문 사용 도 참조하십시오. 주: 데이터베이스 내 데이터 기반의 계산된 컬럼에서는 OVER 표현식이나 중첩된 집계가 지원되지 않습니다. 하지만 시각화 컨텍스트에서는 이러한 구성 둘 다 사용자 지정 표현식을 통해 사용할 수 있습니다. 계산된 컬럼 추가 도구를 사용하여 지역별 총 판매량을 계산한 다음 이 판매량의 최댓값을 찾는 방법을 보여주는 예가 아래에 나와 있습니다. 프로시저

  1. 분석에서 위의 데이터를 로드합니다.
  2. 메뉴 표시줄에서 데이터계산된 컬럼 추가를 선택합니다.
  1. 표현식 필드에 다음을 입력합니다. Max(Sum([Sales]) OVER ([Region]))
  2. 확인을 클릭합니다. 결과 새 컬럼이 데이터 테이블에 추가됩니다. 최댓값을 여러 시각화에서의 비교에 사용할 수 있습니다.

계산 상세 정보

이 계산은 계산된 컬럼이 추가될 때 데이터 엔진에서 수행되며 이러한 예의 중간 테이블은 최종 사용자에게 표시되지 않습니다. 원본 데이터:

먼저, 내부 집계가 계산되어 다음과 같은 지역별 판매 합계가 계산됩니다.

계산된 컬럼에서는 계산 결과가 항상 입력 테이블의 모든 행에 적용되므로 다음과 같이 각 지역의 결과 판매 값이 모든 행에 희미하게 표시됩니다.

그런 다음 Max()가 “Total Sales (SMEARED)“에 대해 계산되어 350이라는 결과 값을 얻게 됩니다. 계산된 컬럼을 삽입하고 있으므로 이 값 역시 전체 행에 희미하게 표시됩니다. 최종 결과는 다음과 같습니다.

데이터 테이블이 필터링되는 경우, 계산된 컬럼에는 여전히 전체 데이터 테이블 기반의 값이 표시됩니다.

사용자 지정 표현식에서 지역별로 가장 많이 판매되는 제품의 판매량 표시 및 필터링으로 한 제품 그룹 제외

중첩된 집계는 시각화의 축에 대한 사용자 지정 표현식에서도 사용할 수 있습니다. 이 경우, 계산된 컬럼에서 사용했을 때와 비슷하게 작동하지만 몇 가지 차이가 있습니다. 우선, 필터링이 고려되므로 필터링된 데이터 하위 집합에 대해서도 모든 집계가 수행됩니다. 또한 최외곽 집계에만 시각화에서 정의된 그룹화가 사용되며 모든 내부 집계에는 데이터 분할을 위한 OVER 표현식이 필요합니다. 모든 내부 집계는 계산된 컬럼과 같은 방식으로 처리되므로 내부 집계의 결과 값은 외부 집계의 모든 행에 추가됩니다. 내부 집계에 OVER 표현식이 있으면 표현식에 명시적으로 나와 있지 않더라도 시각화의 모든 범주별 축이 자동으로 교차됩니다(집계되지 않은 시각화의 경우는 아님). 자세한 내용은 아래의 계산 상세 정보를 참조하십시오. 이 예에서는 시각화에서 각 지역을 하나의 막대로 나타내는데 여기서 막대의 높이는 해당 지역에서 가장 많이 판매되는 제품의 판매량입니다. 또한 “Chair” 제품을 필터링하여 의자를 제외한 제품 중 가장 많이 판매되는 제품을 알아보는 것으로 가정합니다. 프로시저

  1. 분석에서 위의 데이터를 로드합니다.
  2. 막대 그래프를 만듭니다.
  3. 범주 축에 지역을 사용합니다.
  4. 값 축에는 다음 표현식을 사용하여 제품별 최대 합계를 표시합니다. Max(Sum([Sales]) OVER Intersect([Product]))

막대 그래프에 각 지역에서 가장 많이 판매되는 제품의 값이 표시됩니다. 5. 필터 패널에서 Chair 체크박스를 선택 취소합니다.

결과 필터링된 데이터 테이블을 기반으로 막대 높이가 다시 계산되며 새로운 최댓값이 표시됩니다.

계산 상세 정보

이 계산은 계산된 컬럼이 추가될 때 데이터 엔진에서 수행되며 중간 테이블은 최종 사용자에게 표시되지 않습니다. 원본 데이터에서 시작하여 다음과 같은 테이블이 만들어집니다.

“Chair”가 필터링된 경우 시각화에서 계산에 사용될 데이터는 다음과 같습니다.

내부 집계가 범주별 축과 교차되므로 계산되는 실제 표현식은 Sum([Sales]) OVER Intersect([Region],[Product])이며 그 결과 (지역,제품) 쌍당 다음과 같은 판매량이 나옵니다.

계산된 컬럼과 마찬가지로, 내부 집계는 그 결과가 외부 집계에 전달되기 전에 항상 모든 행에 희미하게 표시됩니다. 즉, 다음의 값이 Max() 함수의 입력으로 사용됩니다.

이 예는 시각화에서 사용자 지정 표현식으로 계산되므로 최외곽 집계(Max())에는 시각화에서 정의한 그룹화가 사용됩니다. 즉, 실제 표현식에서는 필터링되고 희미하게 표시된 행을 기반으로 계산되어 다음과 같은 막대 값이 만들어집니다.

“Chair” 범주가 필터링되었으므로 동부 지역의 상위 범주는 “Phone”이며 서부 지역의 상위 범주는 “Desk”입니다. 필터링이 변경되면 그 결과 상위 범주도 변경됩니다. 팁: 해당하는 경우(데이터 및 표시된 축에 따라) 중첩 집계를 사용하여 상위 범주를 찾는 데 도움이 되는 상위 범주 라는 표현식 바로 가기를 사용할 수 있습니다. 여러 상위 범주를 처리할 수 있도록 만들어진 이 표현식 바로 가기를 사용하면 비교할 범주와 내부 집계를 쉽게 변경할 수 있습니다. 이는 다음과 같은 표현식을 사용합니다.

UniqueConcatenate(If(Max(Sum([Sales]) OVER (Intersect([Product]))) OVER (Intersect())=Sum([Sales]) OVER (Intersect([Product])),[Product],null


Over 함수에 대해여

참조하는 의미를 가지고, 값을 집계할 단위를 설정합니다.


특정 조건에 부합하는 방식 참조할 노드를 이동할 수 있습니다.

표현식

문자열 다루기

Substring, Left, Right,

Qiz 연습 문제 1 문제: “New York;London;Paris;Tokyo”라는 문자열을 세미콜론(;) 기준으로 분할하고, 각 도시 이름을 별도의 항목으로 나누세요. 예상 출력: “New York”, “London”, “Paris”, “Tokyo”

연습 문제 2: 문제: 문자열 ” Spotfire Tutorial “의 앞뒤 공백을 제거하세요. 예상 출력: “Spotfire Tutorial”

연습 문제 3: 문제: “Data”, “Analysis”, “Spotfire” 세 개의 문자열을 공백을 사이에 두고 하나의 문자열로 결합하세요. 예상 출력: “Data Analysis Spotfire”

연습 문제 4: 문제: “SpotfireUser” 문자열에서 왼쪽에서부터 7개의 문자를 추출하세요. 예상 출력: “Spotfir”

연습 문제 5: 문제: “Introduction to Spotfire” 문자열에서 Substring을 사용하여 문자를 추출하세요. 예상 출력: “Spotfir”


날짜함수 다루기