Looker 표현식 만들기

Looker 표현식

Looker 표현식(Lexp라고도 함)은 다음에 대한 계산을 수행하는 데 사용됩니다.

Looker 표현식은 다음 요소의 조합으로 빌드됩니다.

  • NULL: NULL 값은 데이터가 없음을 나타내며 비어 있거나 존재하지 않는 항목이 있는지 확인할 때 유용할 수 있습니다.

  • 상수: 상수는 사용자가 제공하는 변경되지 않는 값입니다. 7과 같은 숫자 또는 Completed와 같은 문자열은 상수입니다.

  • Looker 필드: 측정기준, 측정값, 테이블 계산을 포함하는 Looker 필드에 대한 참조입니다.

  • Looker 연산자: 여러 유형의 연산자가 있습니다(Looker 함수 및 연산자 문서 페이지에 나열).

    • 수학 연산자(예: +, -, *, /)
    • 비교 연산자(예: =, >, <=)
    • 논리 연산자(예: AND, OR, NOT)
  • Looker 함수: 본질적으로 Excel 함수와 유사합니다. 함수를 사용하면 복잡한 방식으로 데이터를 변환하거나 데이터를 참조할 수 있습니다. 사용 가능한 모든 함수는 Looker 함수 및 연산자 문서 페이지에 나와 있습니다.

Looker 표현식 만들기

테이블 계산, 커스텀 필드, 커스텀 필터는 Looker 표현식 편집기를 사용합니다. 표현식을 입력하면 Looker에서 사용할 함수, 연산자, 필드 이름을 묻는 메시지가 표시됩니다.

모든 제안 보기

테이블 계산, 커스텀 필드 또는 커스텀 필터를 만들어 Explore에서 Looker 표현식 편집기에 액세스합니다.

스페이스를 입력하여 선택할 수 있는 모든 필드, 함수, 연산자 목록을 확인합니다. 현재 Explore에서 사용 중인 필드는 필드 왼쪽에 검은색 점으로 표시되고 목록의 맨 위에 표시됩니다.

Looker 표현식 편집기에 입력을 시작하여 관심 있는 항목으로 목록을 줄입니다.

커스텀 필드의 편집기에는 커스텀 필드의 함수와 호환되는 경우 현재 사용 중인 Explore 필드가 표시됩니다.

필드 추가

표현식에 Looker 필드를 포함하려면 필드 이름을 입력합니다. 입력과 동시에 편집기는 입력한 내용을 포함하는 필드 및 함수 목록으로 검색 범위를 좁힙니다. Explore 페이지에 표시되는 필드의 이름을 입력하거나, LookML 이름을 알고 있는 경우 해당 이름을 사용할 수 있습니다.

목록에서 필드를 선택하면 Looker가 ${view_name.field_name} 형식의 LookML 이름을 사용하여 표현식에 필드를 추가합니다. 이렇게 하면 모든 필드의 이름이 표현식에서 고유한 이름을 갖게 됩니다.

합계 추가

합계가 표시된 Explore를 기반으로 표현식을 만드는 경우 표현식에 열 및 행 합계를 포함할 수도 있습니다. 열 합계는 필드 이름의 LookML 반복 앞에 Total이라는 단어와 함께 편집기에 표시됩니다. 예를 들어 Count라는 필드의 경우 Looker에서 해당 필드에 Count - Total라는 열 합계를 제공합니다.

합계의 LookML 이름${view_name.field_name:total} 형식이며, 여기서 :total은 필드 이름 끝에 추가됩니다.

행 합계의 경우 Row Totals라는 단어가 편집기의 필드 이름 앞에 나타나고, 필드의 LookML 이름에서 이 필드 이름 끝에 :row_total(예: ${view_name.field_name:row_total})이 추가됩니다.

연산자 추가

필요한 경우 AND, OR, NOT과 같은 논리 연산자를 표현식에 추가할 수 있습니다. 일반적으로 AND 연산자는 OR 연산자보다 먼저 평가되지만 괄호를 사용하여 이 동작을 재정의할 수 있습니다. 또한 비교 연산자(예: >, =, <=) 및 수학 연산자(예: +*)를 사용할 수 있습니다.

연산자로 마우스를 가져가면 정보 창에 올바른 사용법에 대한 메모가 표시됩니다.

함수 추가

표현식에 Looker 함수를 포함하려면 함수 이름을 입력합니다. 입력과 동시에 편집기는 입력한 내용을 포함하는 필드 및 함수 목록으로 검색 범위를 좁힙니다.

함수는 필드, 숫자, 예/아니요와 같은 특정 유형을 필요로 하는 인수(또는 변수)로 구성될 수 있습니다. 함수로 마우스를 가져가면 정보 창에서 표현식 옆에 표시되는 메모를 확인하여 제공해야 하는 인수와 필요한 인수의 유형을 파악할 수 있습니다.

Looker에서 제공하는 함수의 전체 목록은 Looker 함수 및 연산자 문서 페이지를 참고하세요.

오류 힌트 및 정보 창 사용

Looker 표현식 편집기 옆에 정보 창이 표시됩니다. 이 창에는 특히 표현식에 오류가 있는 경우 문서와 제안사항이 제공됩니다.

표현식 편집기 옆에 있는 정보 창에 다음 정보가 표시됩니다.

  • 오류 강조 표시: 아직 올바르지 않은 표현식 부분에 빨간색 밑줄이 표시됩니다.

  • 추천 및 오류 세부정보:는 표현식에서 다음에 추가할 항목에 대한 제안이 제공됩니다. 오류가 있으면 오류가 발생한 이유를 설명합니다. 오류가 여러 개 있는 경우 커서의 위치에 따라 오류가 표시됩니다.

  • 문서: 커서 위치에 따라 작업 중인 함수 또는 연산자에 대한 문서가 표시됩니다. 예를 들어 if() 함수의 첫 번째 인수를 입력하는 동안 Looker는 첫 번째 인수가 true 또는 false로 평가되어야 하는 정보를 제공합니다. 함수 이름을 클릭하면 해당 함수에 대한 문서로 이동할 수 있습니다.

검토 의견 포함

표현식 편집기에서 #로 주석 줄을 시작하여 Looker 표현식에 댓글을 포함할 수 있습니다.

필드 사용

표현식의 필드 값(측정기준, 측정값 또는 테이블 계산)을 사용해야 하는 경우가 있습니다. 필드 값을 다른 항목에 추가하거나, 특정 값이 있는지 확인하거나, 함수에 포함시키는 등 다른 많은 작업을 수행하고자 할 수 있습니다.

이 페이지의 앞부분에서 설명한 것처럼 표현식 편집기에 필드 이름을 입력하면 Looker를 통해 필드를 참조하는 올바른 방법을 확인할 수 있습니다. 표현식에 필드를 추가하면 Looker가 ${view_name.field_name}과 같은 필드의 LookML 식별자를 사용합니다. 필드 선택 도구에 표시되는 필드 이름을 입력하면 표현식 편집기에 필드 선택 도구 이름과 LookML 식별자가 함께 표시됩니다.

값을 검색하는 방법에는 여러 가지가 있습니다.

  • 같은 행에서 값 가져오기: 필드를 사용하는 가장 기본적인 방법은 필드를 직접 참조하는 것입니다. 예를 들어 표현식에 ${product.category}를 사용할 수 있습니다. 이렇게 하면 '특정 행에 대해 해당 행에서 제품 카테고리 가져오기'를 의미합니다.

  • 다른 행의 값 가져오기: 다른 행에서 필드 값을 가져올 수도 있습니다. 예를 들어 '특정 행에 대해 이전 행에서 제품 카테고리 가져오기'의 논리가 필요할 수 있습니다. 이와 같은 경우 오프셋 함수를 사용하면 됩니다(위치 함수 목록 참조). 오프셋 함수는 offset(${product.category}, -1)과 같이 표시됩니다.

  • 피벗된 열에서 값 가져오기: 피벗된 열에서 값을 가져올 수도 있습니다. 예를 들어 '특정 행에 대해 첫 번째 피벗된 열에서 총 매출액 가져오기'의 논리가 필요할 수 있습니다. 피벗 열을 사용하려면 피벗 함수를 사용해야 합니다(피벗 함수 목록 참조). 피벗 함수는 pivot_index(${order.total_sales}, 1)와 같이 표시됩니다.

  • 행 또는 열에서 합계 가져오기: Explore에 합계를 추가하면 ${field_name:total} 형식을 사용하여 :total(열 합계의 경우) 또는 :row_total(행 합계의 경우)을 추가하여 열 또는 행에서 합계 값을 가져올 수 있습니다. 예를 들어 주문 수의 합계를 백분율로 표시하려는 경우 ${orders.count} / ${orders.count:total}과 같은 테이블 계산을 만들 수 있습니다.

연산자 사용

Looker 표현식에는 논리, 비교, 수학 연산자가 포함되어 서로 다른 조건을 만들 수 있습니다.

  • 논리 연산자(예: AND, OR, NOT)
  • 비교 연산자(예: ><)
  • 수학 연산자(예: +-)

괄호로 달리 지정하지 않는 한 AND 논리는 OR 논리보다 먼저 고려됩니다. 추가 괄호 없는 다음 표현식:

if (
  ${order_items.days_to_process}>=4 OR
  ${order_items.shipping_time}>5 AND
  ${order_facts.is_first_purchase},
"review", "okay")

다음과 같이 평가됩니다.

if (
  ${order_items.days_to_process}>=4 OR
  (${order_items.shipping_time}>5 AND ${order_facts.is_first_purchase}),
"review", "okay")

Looker에서는 truefalse 대신 yesno를 사용해야 합니다. 이러한 논리 상수는 따옴표로 묶인 "yes""no" 단어와 동일하지 않습니다. 자세한 내용은 논리 상수 설명을 참조하세요.

함수 사용

Looker 표현식은 종종 하나 이상의 함수를 포함하며, 특정 데이터를 검색하거나 특정 항목을 계산하는 데 도움이 됩니다. 특성은 Excel 함수와 본질적으로 유사합니다.

함수는 이름 뒤에 괄호가 2개 추가된 형태입니다(my_function()). 괄호 안에 쉼표로 구분하여 정보를 제공해야 할 수 있습니다. 이러한 정보를 '인수'라고 하며 my_function(argument_1, argument_2)과 같습니다.

예를 들어 now 함수는 인수를 사용하지 않고 현재 날짜와 시간을 제공합니다. now()와 같이 사용합니다.

round 함수는 숫자인 인수 하나를 취합니다. round(3.2)와 같이 사용합니다. 결과는 3입니다.

제공해야 하는 인수가 있는 경우 두 가지 방법으로 확인할 수 있습니다.

  • 표현식 편집기 옆에 표시되는 정보 창은 작성 중인 함수에 대한 몇 가지 문서를 제공합니다. 함수 이름을 클릭하면 해당 문서로 이동할 수 있습니다.
  • Looker 함수 및 연산자 문서 페이지로 직접 이동하여 사용할 함수를 찾을 수도 있습니다.

다음과 같은 문서가 포함된 contains 함수를 살펴보세요.

함수 구문 목적
contains contains(string, search_string) stringsearch_string이 포함되어 있으면 Yes를 반환하고 그렇지 않으면 No를 반환합니다.

두 개의 인수가 필요한 것을 확인할 수 있습니다. stringsearch_string이라는 이름을 가지고 있지만 함수에 'string'과 'search_string'을 정확히 입력할 필요는 없습니다. 이들은 다른 인수로 대체할 인수의 이름일 뿐입니다. 목적을 읽으면 string검색하는 필드 또는 다른 값이어야 하며 search_string은 검색하려는 항목인 것입니다. 예를 들면 다음과 같습니다.

contains(${customer.feedback_text}, "great")

고객 의견에 'great'라는 단어가 나타날 경우 이 함수는 Yes의 결과를 제공합니다. 그렇지 않은 경우 No의 결과가 표시됩니다.

함수를 다른 함수 내부에 넣어 복잡한 논리를 처리할 수 있습니다. 내부 함수의 결과가 외부 함수의 인수에 적합하면 작동합니다. 예를 들면 다음과 같습니다.

contains(
  if(
    is_null(${customer.feedback_text}),
    ${customer.comment_text},
    ${customer.feedback_text}
  ),
"great")

is_null 함수는 자체적으로 contains 함수 내에 있는 if 함수 내에 중첩됩니다. 작동 방식은 다음과 같습니다.

  1. is_null() 함수는 고객 의견 텍스트를 확인합니다.
  2. 그런 다음 if() 함수는 이 결과를 사용하여 고객 의견 텍스트(있는 경우)를 반환하고, 그렇지 않으면 고객 댓글 텍스트를 반환합니다.
  3. 마지막으로 contains() 함수는 if() 함수에서 반환된 텍스트를 사용하고 'great'라는 단어를 검색합니다.

논리적으로 이 표현식은 '고객 의견이 있으면 검색합니다. 그렇지 않으면 고객 댓글을 대신 검색합니다. 두 경우 모두 'great'라는 단어를 찾습니다.'라는 의미입니다.