brunch

You can make anything
by writing

- C.S.Lewis -

by Looker Feb 15. 2019

Looker 정렬(Sorting) 오류 수정

My number sort is ordering 10 after 1

본론에 앞서 이 글은 Looker Community의 「My number sort is ordering 10 after 1」를 번역한 글임을 밝힙니다.



Looker에서 계산이나 추출 작업을 수행할때, 정렬 오류가 발생하고는 합니다.

다음 표는 extract(week from ${TABLE}.created_at) 으로 정렬할 때 발생한 오류입니다.

표를 보면 1, 10, 11, 12, ..., 19, 2, 20, 21, ... 로 숫자가 뒤죽박죽 정렬되는 것을 확인할 수 있습니다.




왜 이러한 오류가 발생할까요?


Looker는 dimension이나 measure에 부여된 type에 의해 정렬 메커니즘이 결정됩니다.

type의 디폴트 값은 string인데, 위의 에러는 dimension이나 measure에 type: string이 적용되었기 때문에 발생한 것입니다.

참고로 위의 표에 부여된 dimension은 다음과 같습니다.



그렇다면 어떻게 이 문제를 해결할 수 있을까요?


해결 방법은 간단합니다.

type을 number나 int로 바꾼다면, 데이터가 alphanumeric 순서가 아닌 numeric 순서로 정렬될 것입니다.

다만 int보다는 number를 적용하는 것이 더 좋습니다.

아래의 코드는 type: number를 적용한 것입니다.



만약 위의 방법을 적용했는데, null 값이 나온다면 어떻게 해야 할까요?


이러한 경우에는 두 가지 대안이 있습니다.

첫번째 방법은 sql_case dimension을 이용하는 것입니다. 다만 이 방법은 사전에 LookML에서 제목들이 정의되어 있어야 합니다. 

두번째 방법은 order_by_field 값을 이용하여 정렬을 강제하는 것입니다. 다만 이 방법은 id와 같은 integer 값을 정렬하는 것이기 때문에, 숫자의 순서대로 정렬이 안 될 가능성이 있습니다.


sql_case dimensionorder_by_field에 대한 더 자세한 내용은 아래의 링크를 참고하시길 바랍니다.

sql_case dimension : https://docs.looker.com/reference/field-reference#sql_case

order_by_field : https://discourse.looker.com/t/order-by-field-3-14/361








About Looker

Looker는 데이터 중심의 의사 결정을 모든 기업 계층에 제공합니다. 가치를 더하고 단일의 진리의 원천을 만드는 최신 데이터 플랫폼을 제공합니다. Amazon에서 Sony에 이르기까지 750개 이상의 업계 리더가 Looker를 사용하여 모든 팀이 어디에서든 정보에 입각한 의사결정에 필요한 데이터에 액세스 할 수 있도록 지원합니다.


- Looker 홈페이지: https://looker.com/

- 빈티지랩 Looker 사업팀 이메일: looker@vntglab.com

매거진의 이전글 SSO 결합 주소 생성 문제 해결

매거진 선택

키워드 선택 0 / 3 0
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari