기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

파생 필드

관련성이 높은 필드 그룹이 있거나, 차원 또는 측정값을 만들 때 관련성이 있는 작은 부분으로 나눌 수 있는 정보가 필드에 포함되어 있는 경우, 파생된 필드를 생성하는 데 사용할 수 있는 필드 정의를 만들 수 있습니다. 예를 하나 들자면, 년도, 월, 주 수 또는 날짜 이름과 같은 여러 특성을 파생시킬 수 있는 데이터 필드가 있습니다. 이러한 특성은 모두 Qlik Sense 날짜 함수를 사용하여 차원 표현식에서 계산할 수 있지만, 또 다른 방법은 데이터 유형의 모든 필드에서 공통으로 사용되는 캘린더 정의를 만드는 것입니다. 필드 정의는 데이터 로드 스크립트에 저장됩니다.

정보 메모Qlik Sense에 대한 기본 캘린더 필드 정의는 데이터 관리자를 사용하여 로드된 날짜 필드의 autoCalendar에 포함됩니다.자세한 내용은 자동 캘린더를 사용하여 자동으로 날짜 필드 파생 연결 및 새 파일에서 앱에 데이터 추가를 참조하십시오.

캘린더 필드 정의 선언

Declare 문을 사용하여 파생된 필드의 정의를 만들 수 있습니다. 필드의 다양한 특성을 정의할 수 있는 위치로, 이 사례에서는 날짜 관련 특성을 정의할 수 있습니다. 각 필드는 <expression> As field_name tagged tag로 기술됩니다. 하나 이상의 태그를 설정하는 것은 선택 사항이지만 파생된 필드의 정렬 순서에 영향을 미칠 수 있습니다. $1을 사용하여, 파생 필드를 생성해야 하는 원본 데이터 필드를 참조합니다.

경고 메모 고유의 자동 캘린더를 만들거나 데이터 관리자가 만든 자동 구성 [autoCalendar]로 작업하는 경우가 아니라면 캘린더 필드 정의 이름으로 autoCalendar를 사용하지 마십시오. 이 이름은 자동 생성된 캘린더 템플릿용으로 예약되어 있습니다. 자동 캘린더를 사용하여 자동으로 날짜 필드 파생를 참조하십시오.
Calendar: DECLARE FIELD DEFINITION TAGGED '$date' Parameters first_month_of_year = 1 Fields Year($1) As Year Tagged ('$numeric'), Month($1) as Month Tagged ('$numeric'), Date($1) as Date Tagged ('$date'), Week($1) as Week Tagged ('$numeric'), Weekday($1) as Weekday Tagged ('$numeric'), DayNumberOfYear($1, first_month_of_year) as DayNumberOfYear Tagged ('$numeric');
 

자세한 내용은 Declare을 참조하십시오.

Derive를 사용하여 캘린더에 데이터 필드 매핑

다음 단계는 Derive 문을 사용하여 기존 데이터 필드를 캘린더에 매핑하는 것입니다. 이렇게 하면 파생 필드가 생성됩니다. 데이터 로드 스크립트에서 세 가지 대체 가능한 방법으로 이 작업을 수행할 수 있습니다.

  • 필드 이름을 사용하여 특정 필드 매핑.

    DERIVE FIELDS FROM FIELDS OrderDate,ShippingDate USING Calendar;
  • 하나 이상의 특정 필드 태그를 사용하여 모든 필드 매핑.

    DERIVE FIELDS FROM EXPLICIT TAGS ('$date') USING Calendar;
  • 필드 정의(위의 예에서는 $date)의 하나 이상의 태그를 사용하여 태그가 지정된 모든 필드 매핑.

    DERIVE FIELDS FROM IMPLICIT TAG USING Calendar;

이 사례에서는 이 세 가지 예 중에서 사용할 수 있습니다.

자세한 내용은 Derive을 참조하십시오.

자동 캘린더를 사용하여 자동으로 날짜 필드 파생

데이터 관리자를 사용하여 앱을 빌드하고 데이터를 로드하는 경우 [autoCalendar]라는 캘린더가 로드 스크립트에 자동으로 삽입되어 기본 캘린더 정의를 제공합니다. 이는 앱의 비즈니스 논리에 표시됩니다.

날짜 필드가 포함된 스크립팅을 사용하여 만들어진 앱의 경우 해당하는 모든 날짜 필드를 로드한 후 아래에 표시된 이 [autoCalendar] 코드를 섹션의 스크립트에 삽입할 수 있습니다. 이를 통해 앱 사용자는 스마트 시트를 작성할 수 있는 유형을 포함하여 사용할 수 있는 모든 기간 기반 분석 유형을 사용할 수 있습니다. 비즈니스 논리에 캘린더 기간을 올바르게 추가하려면 캘린더 제목이 [autocalendar]여야 합니다.

DERIVE FIELDS FROM FIELDS [My_Date_Field1], [My_Date_Field2] USING [autoCalendar] ; 행에서 [My_Date_Field1][My_Date_Field2] 필드 이름을 수정하여 날짜 필드를 새 파생 날짜 필드를 생성하는 자동 캘린더 계산과 연결합니다. 자동 캘린더에 연결할 날짜 필드가 하나만 있는 경우 [My_Date_Field2]를 제거합니다. 마찬가지로, 자동 캘린더를 활성화할 날짜 필드가 3개 이상인 경우 추가 날짜 필드를 추가합니다.

[autoCalendar]:
  DECLARE FIELD DEFINITION Tagged ('$date')
FIELDS		
  Dual(Year($1), YearStart($1)) AS [Year] Tagged ('$axis', '$year'),
  Dual('Q'&Num(Ceil(Num(Month($1))/3)),Num(Ceil(NUM(Month($1))/3),00)) AS [Quarter] Tagged ('$quarter', '$cyclic'),
  Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [YearQuarter] Tagged ('$yearquarter', '$qualified'),
  Dual('Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [_YearQuarter] Tagged ('$yearquarter', '$hidden', '$simplified'),
  Month($1) AS [Month] Tagged ('$month', '$cyclic'),
  Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth', '$qualified'),
  Dual(Month($1), monthstart($1)) AS [_YearMonth] Tagged ('$axis', '$yearmonth', '$simplified', '$hidden'),
  Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber', '$cyclic'),
  Date(Floor($1)) AS [Date] Tagged ('$axis', '$date', '$qualified'),
  Date(Floor($1), 'D') AS [_Date] Tagged ('$axis', '$date', '$hidden', '$simplified'),
  If (DayNumberOfYear($1) <= DayNumberOfYear(Today()), 1, 0) AS [InYTD] ,
  Year(Today())-Year($1) AS [YearsAgo] ,
  If (DayNumberOfQuarter($1) <= DayNumberOfQuarter(Today()),1,0) AS [InQTD] ,
  4*Year(Today())+Ceil(Month(Today())/3)-4*Year($1)-Ceil(Month($1)/3) AS [QuartersAgo] ,
  Ceil(Month(Today())/3)-Ceil(Month($1)/3) AS [QuarterRelNo] ,
  If(Day($1)<=Day(Today()),1,0) AS [InMTD] ,
  12*Year(Today())+Month(Today())-12*Year($1)-Month($1) AS [MonthsAgo] ,
  Month(Today())-Month($1) AS [MonthRelNo] ,
  If(WeekDay($1)<=WeekDay(Today()),1,0) AS [InWTD] ,
  (WeekStart(Today())-WeekStart($1))/7 AS [WeeksAgo] ,	
  Week(Today())-Week($1) AS [WeekRelNo] ;

DERIVE FIELDS FROM FIELDS [My_Date_Field1], [My_Date_Field2] USING [autoCalendar] ;

올바르게 수행되면 앱의 비즈니스 논리에 여러 캘린더 기간이 자동으로 만들어지며 통찰력에서 기간 기반 분석 유형을 사용할 수 있습니다.

자세한 내용은 기간 기반 분석을 위해 통찰력에서 스마트 시트 사용을 참조하십시오.

시각화에서 파생 날짜 필드 사용

Qlik Sense에서는 이 예에서처럼 캘린더 정의를 만들고 필드를 매핑한 경우 파생 데이터 필드를 즉시 식별할 수 있습니다. 이들 필드는 필드 자산 패널의 날짜 및 시간 필드 섹션에서 사용할 수 있습니다. 또한 식 편집기에서, 그리고 차원을 만들거나 편집할 때에도 모든 파생 필드를 찾을 수 있습니다.

자세한 내용은 날짜 및 시간 필드을 참조하십시오.

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!