Looker 표현식 만들기

관리자가 맞춤 필드 실험실 기능을 사용 설정한 경우 다음 기능을 사용하여 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 매개변수에 복사할 수 있습니다.

모든 추천 보기

탐색 분석에서 표 계산, 맞춤 필드 또는 맞춤 필터를 만들어 Looker 표현식 편집기에 액세스하세요.

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

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

맞춤 입력란 편집기는 맞춤 입력란 함수와 호환되는 경우 현재 사용 중인 탐색 입력란을 표시합니다.

필드 추가

표현식에 Looker 필드를 포함하려면 필드 이름을 입력하세요. 입력하는 동안 편집기는 사용자가 입력한 내용을 포함하는 필드 및 함수 목록으로 검색 범위를 좁힙니다. 탐색 페이지에 표시되는 필드의 이름을 입력하거나 LookML 이름을 아는 경우 사용할 수 있습니다.

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

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

합계 추가

합계를 표시한 탐색 분석을 기반으로 표현식을 만드는 경우 표현식에 열 및 행 합계를 포함할 수도 있습니다. 열 합계는 편집기에 필드 이름의 LookML 반복 앞에 Total이라는 단어와 함께 표시됩니다. 합계 열 합계가 아래의 첫 번째 추천 항목으로 표시됩니다.

합계의 LookML 이름은 ${view_name.field_name:total} 형식이며 여기서 :total는 필드 이름 끝에 추가됩니다. 행 총계의 경우 편집기에서 필드 이름 앞에 행 총계가 표시됩니다. 필드의 LookML 이름에서 :row_total이 필드 이름 끝에 추가됩니다.

연산자 추가

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

커서가 연산자 위에 있으면 적절한 사용 참고사항이 정보 창의 표현식 오른쪽에 표시됩니다.

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

함수 추가

표현식에 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)와 같이 표시될 수 있습니다.

  • 행 또는 열의 합계 가져오기: 탐색에 합계를 추가한 경우 ${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 함수와 특성이 비슷합니다.

함수는 이름 뒤에 my_function()와 같이 괄호 두 개를 사용합니다. 괄호 안에 정보를 쉼표로 구분하여 제공해야 할 수 있습니다. 이러한 정보를 '인수'라고 하며 my_function(argument_1, argument_2)처럼 표시됩니다.

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

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

제공해야 하는 인수가 있다면 다음 두 가지 방법으로 제공해야 합니다.

  • 표현식 편집기의 오른쪽에 표시되는 정보 창에는 작성 중인 함수에 관한 문서가 제공됩니다. 함수 이름을 클릭하여 문서로 이동할 수 있습니다.
  • Looker 함수 및 연산자 문서 페이지로 직접 이동하여 사용하려는 함수를 조회할 수도 있습니다.

다음과 같은 문서가 포함된 contains 함수를 살펴보겠습니다.

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

2개의 인수가 필수임을 확인할 수 있습니다. 이 둘의 이름은 stringsearch_string이지만 이것이 '문자열'과 '검색 문자열'이라는 정확한 함수를 함수에 직접 입력해야 한다는 의미는 아닙니다. 이는 무언가로 대체할 인수의 이름입니다. 목적을 읽어보면 string검색하려는 필드나 다른 값이어야 하고 search_string검색하려는 항목입니다. 예를 들면 다음과 같습니다.

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

고객 의견에 단어 '훌륭함'이 나타나면 이 함수는 Yes의 결과를 제공합니다. 그렇지 않은 경우 No의 결과를 제공합니다.

함수를 다른 함수 내부에 배치하여 복잡한 로직을 처리할 수 있습니다. 내부 함수의 결과가 외부 함수의 인수에 적절하다면 작동합니다. 예를 들면 다음과 같습니다.

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

여기서는 contains 함수 내부에 있는 if 함수 내부에 is_null 함수를 중첩했습니다. 다음과 같이 작동합니다.

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

논리적으로 이 표현식은 다음과 같습니다. "고객 의견이 있으면 검색합니다. 그렇지 않은 경우 고객 의견에서 검색해 보세요. 두 경우 모두 'great&'라는 단어를 찾습니다.

맞춤 필터맞춤 입력란은 대부분의 함수를 사용할 수 있지만 일부 수학 함수 또는 다른 행이나 피봇 열을 참조하는 함수를 사용할 수는 없습니다. Looker 함수 및 연산자 문서 페이지에서는 사용할 수 있는 함수를 확인할 수 있습니다.

표 계산에서 모든 함수를 사용할 수 있습니다. 또한 expression 매개변수는 기본적으로 예노 (불리언)를 생성하는 테이블 계산이므로 데이터 테스트expression 매개변수에 있는 모든 함수를 사용할 수 있습니다.