상세 컨텐츠

본문 제목

Amazon QuickSight에서 한 주의 시작을 월요일로 표시하기

☁️ AWS

by chnh 2023. 1. 29. 22:10

본문

반응형

들어가며

미국에서 만든 서비스라 그런지 QuickSight는 한 주의 시작을 일요일로 설정한다. 하지만 우리나라에서는 한 주의 시작을 월요일로 규정하고 있기 때문에 QuickSight에 내장된 함수로 주간 집계시 문제가 발생하게 되는데 .. 

 

앞서 다뤘던 날짜를 요일로 변환하는 법을 응용해서 이 문제를 해결할 수 있다.
일요일=1이기 때문에 모든 요일값에 1을 더하고 그 날짜를 바탕으로 주 부분을 반환하게 하는 방식이다.

 

본론

truncDate

truncDate('period', date)

period에 WK를 넣으면 date의 주 부분을 반환한다. (해당 주차의 시작일 표시)

주어진 필드값이 다음과 같을 때

orderDate      
=========
2021-09-01 
2021-09-05 
2021-09-10 

truncDate 결과 다음 값이 반환된다.

2021-08-29
2021-09-05 
2021-09-05 

한 주의 시작이 월요일이라면 다음과 같은 값이 나와야한다.

2021-08-30
2021-08-30 
2021-09-06 


1. extract

먼저 해당 날짜가 일요일일 경우 날짜에서 1일을 빼도록 한다.

ifelse( 
  extract('WD', {date}) = 1, 
  addDateTime(-1,'DD',{date}), 
  {date}                      
)
orderDate      
=========
2021-09-01 => 4
2021-09-05 => 1 => 날짜에서 1을 뺀다 
2021-09-10 => 6

다음과 같은 결과가 출력된다.

2021-09-01 
2021-09-04
2021-09-10

2. trunDate

1일을 빼고 truncDate를 실행하면 다음과 같은 결과가 나온다.

2021-09-05의 경우 trunDate 결과가 2021-09-05였는데,
1단계에서 하루를 앞당겨뒀기 때문에 그 전 주의 일요일 날짜인 2021-08-29를 반환한다.

2021-08-29 
2021-08-29
2021-09-05

3. addDateTime

이제 여기서 addDateTime 함수를 사용하여 1일을 더해주면 월요일 날짜가 출력된다.

2021-08-30 
2021-08-30
2021-09-06

계산된 필드 생성 시 다음 함수를 사용하면 한 주의 시작을 월요일로 반환하게 할 수 있다.

결론

{date} 자리에 날짜 필드를 넣으면 된다.

addDateTime(
    1, 
    'DD', 
    truncDate(
        'WK',
        ifelse(
            extract(
                'WD',
                {date}
            ) = 1, 
            addDateTime(
                -1, 
                'DD', 
                {date}
            ), 
            {date}
        )   
    )
)

 

마치며

커뮤니티가 활성화되지 않은 툴을 쓰는 건 상당히 수고롭다.
AWS 서비스들과 통합성이 좋은 것 외에 어떤 장점이 있는걸까...?

심지어 safari에서는 잘 열리지도 않는다.


2023-02-20 update 

Quicksight DemoCentral에 해당 기능에 대한 설명이 업데이트 되었다 ! 

 

 

반응형

관련글 더보기

댓글 영역