Looker 표현식 만들기

관리자가 테이블 계산을 만들 수 있는 권한을 부여한 경우 다음 기능을 사용하면 Looker 표현식을 만들지 않고 일반적인 함수를 빠르게 수행할 수 있습니다.

  • 바로가기 계산: Explore의 데이터 테이블에 있는 숫자 필드에서 빠르게 일반 계산을 수행합니다.

관리자가 커스텀 필드를 만들 수 있는 권한을 부여한 경우 다음 기능을 사용하면 Looker 표현식을 만들지 않고 일반적인 함수를 빠르게 수행할 수 있습니다.

  • 커스텀 그룹: sql 매개변수 또는 type: case 필드에서 CASE WHEN 논리를 개발하지 않고 커스텀 라벨 아래에 값을 빠르게 그룹화할 수 있습니다.

  • 커스텀 구간: type: tier LookML 필드를 개발하지 않고도 커스텀 계층에서 숫자 유형 측정기준을 그룹화할 수 있습니다.

Looker 표현식

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

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

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

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

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

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

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

Looker 표현식 만들기

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

유용한 팁: 모델의 논리를 확인하기 위해 데이터 테스트를 만드는 Looker 개발자는 Looker 표현식 편집기를 사용하여 Looker 표현식을 빌드하고 데이터 테스트의 expression 매개변수에 표현식을 복사합니다.

모든 제안 보기

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

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

입력을 시작하여 관심 있는 항목으로 목록을 줄이세요.

커스텀 필드의 편집기에는 커스텀 필드의 함수와 호환되는 경우 현재 사용 중인 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이 필드 이름 끝에 추가됩니다.

연산자 추가

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

커서가 연산자에 있으면 정보 창의 표현식 오른쪽에 적절한 사용에 관한 메모가 표시됩니다.

이 페이지의 연산자 사용 섹션에서 연산자 사용에 대한 자세한 안내를 확인할 수 있습니다.

함수 추가

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

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

Looker에서 제공하는 함수의 전체 목록은 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가 데이터를 검색하려면 필터를 SQL로 전환할 수 있어야 하기 때문입니다.

커스텀 필터 또는 커스텀 필드에서 모든 시간 및 날짜 옵션이 지원되지는 않습니다. 자세한 내용은 측정기준 그룹 매개변수 설명을 참조하세요.

테이블 계산에서 필드를 참조할 때 모든 측정기준, 측정값 또는 기타 테이블 계산의 모든 값을 참조할 수 있습니다.

연산자 사용

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'라는 단어를 찾습니다.'라는 의미입니다.

커스텀 필터커스텀 필드는 대부분의 함수를 사용할 수 있지만 일부 수학 함수나 다른 행 또는 피벗 열을 참조하는 함수를 사용할 수는 없습니다. Looker 함수 및 연산자 문서 페이지에서 사용할 수 있는 함수를 확인할 수 있습니다.

테이블 계산에서 모든 함수를 사용할 수 있습니다. expression 매개변수는 기본적으로 yesno(불리언) 결과를 가져오는 테이블 계산이므로 데이터 테스트expression 매개변수에서 모든 함수를 사용할 수 있습니다.