본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

상대 날짜 유도하기

이 가이드에서는 Contour의 표현식 언어를 사용하여 데이터셋에서 상대 날짜를 유도하는 방법을 보여드립니다.

이 경우, 우리는 달력 주별로 그룹화된 날짜를 살펴보고, 현재 달력 주를 포함하지 않는 바로 전 8주 내의 행을 확인하려고 합니다.

이 목표를 달성하기 위해 몇 가지 중간 열을 유도할 것입니다:

  • departure_week: 이 날짜가 속한 연도의 몇 번째 주(1-52)인지 결정합니다.
  • departure_year_week_as_integer: 연도와 달력 주를 더한 정수를 생성합니다(예: "201501"은 2015년 첫 주입니다).
  • latest_calendar_week: 데이터셋에서 가장 최근 주를 찾습니다.

그리고 관심 있는 열에 도달합니다:

  • within_last_8_weeks: 각 날짜를 latest_calendar_week와 비교하여 그것이 바로 전 8주 내에 있는지 확인합니다(참 또는 거짓 반환).

또한 차트에서 연도와 달력 주를 잘 보여줄 수 있는 레이블 열인 departure_week_label을 유도합니다.

단순히 "지난 8주 내에 있는지"를 계산하는 더 간단한 방법이 있지만, 이 가이드는 가능한 많은 예제를 제공하려는 목적이며(그리고 Contour를 사용하여 명확한 요구 사항에 맞게 조정하는 방법을 보여주려고 합니다).

상대 날짜 유도하기

날짜 열이 있는 데이터셋으로 시작합니다. 여기서는 원본 데이터셋에서 departure_date_time이라는 열을 사용하고 있습니다. 데이터셋에 적합한 열 이름으로 변경할 수 있습니다.

더 빠른 로드를 위해 몇 개월 범위로 필터링하려고 할 수 있습니다. 그런 다음 를 클릭하여 표 보기를 엽니다. 표 편집 보기에서 표현식을 클릭하여 각 새 열을 유도합니다.

Tip

또한 표 보기로 이동하지 않고 경로에서 표현식 보드를 직접 추가할 수 있습니다.

departure_week

첫 번째 열의 이름을 departure_week로 지정합니다.

week_of_year 함수를 사용하여 departure_date_time 열의 각 날짜에 대한 연도의 주를 결정합니다. 주 1-9의 경우, 케이스 문을 사용하여 앞에 0이 있는 숫자로 형식을 지정합니다. 최종 열 표현식은 다음과 같이 보입니다:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 -- 출발 날짜와 시간(departure_date_time)의 주(week_of_year)에 따른 값을 반환하는 CASE 문 CASE week_of_year("departure_date_time") -- 1주일 경우 '01' 반환 WHEN 1 THEN '01' -- 2주일 경우 '02' 반환 WHEN 2 THEN '02' -- 3주일 경우 '03' 반환 WHEN 3 THEN '03' -- 4주일 경우 '04' 반환 WHEN 4 THEN '04' -- 5주일 경우 '05' 반환 WHEN 5 THEN '05' -- 6주일 경우 '06' 반환 WHEN 6 THEN '06' -- 7주일 경우 '07' 반환 WHEN 7 THEN '07' -- 8주일 경우 '08' 반환 WHEN 8 THEN '08' -- 9주일 경우 '09' 반환 WHEN 9 THEN '09' -- 그 외의 경우, 출발 날짜와 시간의 주를 문자열로 변환하여 반환 ELSE CAST (week_of_year("departure_date_time") AS STRING) END

위의 내용을 간단하게 만들려면 case 문 대신 왼쪽 패딩(lpad) 함수를 사용할 수도 있습니다: lpad(week_of_year("departure_date_time"), 2, '0'). 이렇게 하면 필요한 경우 값의 왼쪽에 0을 추가하여 모든 값이 총 두 자릿수가 되도록 합니다.

departure_year_week_as_integer

이 열에서는 방금 파생한 departure_week 열에 연도를 연결합니다.

departure_date_time 열의 각 날짜에서 연도를 추출하기 위해 연도 함수를 사용합니다. 그런 다음 departure_week 열을 결과에 추가하고, || 문자를 사용하여 연결합니다. 마지막으로 결과 값을 정수로 변환합니다. 최종 열 표현식은 다음과 같아야 합니다:

-- 아래 코드는 "departure_date_time"에서 연도를 추출하고 "departure_week"와 문자열로 연결한 후, 정수로 변환합니다.
CAST (year("departure_date_time")||"departure_week" AS INTEGER)

최근_달력_주

이제 방금 생성한 열에서 최대값을 찾아봅시다 — 최대값은 데이터의 최신 주가 되어야 합니다. (데이터가 정기적으로 업데이트된다고 가정하면, "데이터의 최신 주"는 대략 현재 주와 동일합니다.)

구문은 윈도우 함수입니다. 윈도우 함수에 대해 더 알아보고 싶다면, SQL 문서를 읽거나 윈도우 함수 문서를 참조하십시오. 그렇지 않으면, 간단히 함수를 복사하십시오:

max("departure_year_week_as_integer") OVER () -- 최대 출발 연도 주수(정수 형태) 찾기

이것은 범위의 최대값인 열을 생성하므로 모든 행에서 동일합니다.

within_last_8_weeks

이 열을 유도하기 위해 두 가지 비교 문장을 사용하여 데이터의 최신 주보다 8주 이내에 날짜가 있는지 확인합니다. 그렇다면 해당 행의 값으로 TRUE를 사용합니다. 그렇지 않으면 FALSE.

Copied!
1 2 3 4 5 6 7 CASE -- 출발 연도와 주차를 나타내는 정수 값이 최근 주차보다 작으면서 최근 주차에서 9주 이전보다 큰 경우 WHEN ("departure_year_week_as_integer" < "latest_calendar_week") AND ("departure_year_week_as_integer" > ("latest_calendar_week" - 9)) THEN TRUE ELSE FALSE END

departure_week_label

이 열은 연도와 달력 주를 문자열로 깔끔하게 표시하여 차트 레이블링에 사용합니다. 날짜에서 연도를 추출하기 위해 year 함수를 사용한 다음, ".CW"와 달력 주를 추가합니다.

Copied!
1 year("departure_date_time") || '.CW' || "calendar_week" -- "departure_date_time"에서 연도를 가져온 후, '.CW'와 "calendar_week"를 연결합니다.

이제 모든 파생 열을 가지고 있으니 를 클릭하여 표 보기를 종료하십시오(또는 경로에 직접 표현식 보드를 추가한 경우 분석을 계속 진행하십시오).

차트에서 상대 날짜 사용하기

필터를 사용하여 within_last_8_weeks가 참인 행만 남겨두고 필터링된 데이터셋을 이용하여 차트를 생성할 수 있습니다. 다음 차트에서는 departure_week_label을 사용하여 현재 날짜로부터 지난 8주 동안의 주별 고유 항공편 수를 보여줍니다:

relative-dates-chart

이 차트를 보고서에 추가하고 지난 몇 달 동안의 업데이트된 정보를 정기적으로 참조할 수 있습니다.