액체 변수 참조

Liquid는 Looker에서 더 동적인 콘텐츠를 만드는 데 사용할 수 있는 템플릿 언어입니다. 예를 들어 쿼리 결과에 따라 외부 도구의 URL을 빌드하거나 사용자의 선택사항에 따라 쿼리되는 데이터베이스 테이블을 변경할 수 있습니다.

유동 문은 변수, 필터, 태그로 빌드됩니다. 변수에는 사용하려는 정보가 포함되며 Looker에서 제공하는 변수가 이 페이지에 설명되어 있습니다. 이 값과 유동적인 가이드는 이 유동성 가이드에서 확인할 수 있는 필터와 태그를 사용하여 추가로 수정할 수 있습니다.

LookML에는 Liquid를 사용할 수 있는 위치가 여러 개 있습니다.

유동 변수 사용

Liquid 변수의 기본 사용법은 간단합니다. 사용할 변수를 식별한 후 (다음 목록 참고) 유효한 LookML 매개변수에 이 변수를 삽입하기만 하면 됩니다. 특정 LookML 매개변수에서 사용할 수 있는 특정 Liquid 변수가 아래에 정의되어 있습니다.

2가지 액체 사용

Liquid 변수는 두 가지 방법으로 사용할 수 있습니다.

  1. 출력 구문: 이 유형의 유형은 텍스트를 삽입할 수 있으며 Looker에서 Liquid를 사용하는 가장 일반적인 방법일 수 있습니다. 이 방법에서는 Liquid 변수를 중괄호 두 개에 묶습니다. 예: {{ value }}
  2. 태그 구문: 이 유형의 사용은 일반적으로 텍스트를 삽입하지 않습니다. 대신 논리적 비교 및 기타 Liquid 작업에 사용됩니다. 이 방법에서는 Liquid 변수를 중괄호 하나와 단일 퍼센트 기호로 묶습니다. 예: {% dynamic if value > 10000 %}

기본 예시

이 HTML 사용 예에서는 제품 이미지를 생성하기 위해 <img> 태그에 제품 ID가 삽입됩니다.

dimension: product_image {
  sql: ${product_id} ;;
  html: <img src="https://www.brettcase.com/product_images/{{ value }}.jpg" /> ;;
}

이 URL 사용 예에서는 아티스트에 대한 Google 검색을 생성하기 위해 아티스트 이름이 URL에 삽입됩니다.

dimension: artist_name {
  sql: ${TABLE}.artist_name ;;
  link: {
    label: "Google"
    url: "https://www.google.com/search?q={{ value }}"
    icon_url: "https://google.com/favicon.ico"
  }
}

이 SQL 사용 예시에서는 사용자가 선택한 필드에 따라 데이터베이스 테이블이 결정됩니다. 구문은 if (그렇지 않으면 elsif으로 표시) else 구조를 사용하여 쿼리에 포함된 필드를 확인하고 이에 대응합니다.

sql_table_name:
  {% dynamic if event.created_date._in_query %}
    event_by_day
  {% elsif event.created_week._in_query %}
    event_by_week
  {% dynamic else %}
    event
  {% dynamic endif %} ;;

이 라벨 사용 예에서 email 측정기준은 LookML 모델 이름에 따라 label 값을 변경합니다. 이렇게 하면 필드 선택 도구 및 email 측정기준이 포함된 모든 쿼리 결과에서 필드 이름이 동적으로 변경됩니다.

dimension: email {
  label: "{% dynamic if _model._name == 'thelook' %} Looker Registered Email Address {% dynamic else %} External Email Address {% dynamic endif %}"
  type: string
  sql: ${TABLE}.email ;;
}

추가 사용 예시는 관심 있는 개별 LookML 매개변수 페이지를 참고하세요.

다른 필드에서 변수 액세스

유동 변수는 일반적으로 사용되는 필드를 기반으로 합니다. 그러나 필요한 경우 다른 필드의 값에도 액세스할 수 있습니다.

{{ view_name.field_name._liquid-variable-name }} 형식을 사용하여 쿼리 결과에서 동일한 행의 다른 필드에 액세스합니다. _liquid-variable-name를 Looker Liquid 변수로 바꿉니다. 다음과 같이 변수 이름 앞에 밑줄이 있는지 확인합니다.

  • {{ view_name.field_name._value }}
  • {{ view_name.field_name._rendered_value }}
  • {{ view_name.field_name._model._name }}

다음 예는 다른 입력란에서 웹사이트 URL에 액세스하기 위해 사용한 유형입니다.

dimension: linked_name {
  sql: ${name} ;;
  html: <a href="{{ website.url._value }}" target="_blank">{{ value }}</a> ;;
}

{{ field_name._value }} Liquid 변수 구문으로 다른 필드를 참조하면 참조된 필드가 SQL 쿼리의 SELECT 절에 추가되고 GROUP BY 절에 추가 열로 추가됩니다. 참조된 필드의 값을 적절하게 가져오는 데 필요합니다. 하지만 이로 인해 집계 측정에 예상치 못한 결과가 발생할 수 있습니다. 자세한 내용은 이 페이지의 집계식에서 액체 변수를 사용하는 방법에 관한 섹션을 참고하세요.

액체 변수 정의

다음 표에서는 LookML과 함께 사용할 수 있는 Liquid 변수를 설명합니다. 사용량 열에는 각 Liquid 변수와 함께 사용할 수 있는 LookML 매개변수가 표시되며 다음 옵션이 포함됩니다.

A = action 매개변수와 작동

DV = default_value(대시보드용) 매개변수와 작동

DE = 필드 수준에서 description 매개변수를 사용할 수 있지만 탐색 수준에서는 description를 사용하지 않음

F = filters (대시보드 요소용) 매개변수와 작동

H = html 매개변수와 작동

LA = label 매개변수, view_label 매개변수, group_label 매개변수, group_item_label 매개변수를 비롯한 필드 수준에서 라벨 매개변수와 함께 작동하지만 모델, 탐색, 보기, 참조 선 수준에서는 라벨 매개변수로 작동하지 않거나 link의 하위 매개변수로 label을 사용합니다.

LI = link 매개변수와 작동

S = sql로 시작하는 모든 LookML 매개변수 (예: sql, sql_on, sql_table_name)와 호환됩니다.

변수 정의 용도 출력 예시
필드 값
value 데이터베이스 쿼리에서 반환된 필드의 원시 값입니다. 피봇 필드의 값을 참조할 수 있습니다.

사용량 열에 표시된 매개변수 외에도 valueactionlink 매개변수의 label 하위 매개변수에서 지원됩니다.
A H LI 8521935
rendered_value Looker의 기본 형식이 지정된 필드의 값입니다.

고객센터의 유동적인 날짜 형식을 통한 쉬운 날짜 형식 지정 도움말에 표시된 대로 rendered_value에서 날짜 형식 지정 구문을 참조할 수 있습니다.

사용 열에 표시된 매개변수 외에도 rendered_valueactionlink 매개변수의 label 하위 매개변수에서 지원됩니다.
A H LI 8,521,935.00달러
filterable_value Looker URL에서 필터로 사용하기 위해 형식이 지정된 필드의 값입니다.

예를 들어 'Periaptly, Inc'와 같이 쉼표가 포함된 문자열 값을 필터링하면 value 변수는 'Periaptly'와 'Inct;'라는 두 개의 다른 문자열을 반환합니다. filterable_value 변수는 특수문자를 이스케이프 처리하고 단일 문자열을 반환하여 이 문제를 수정합니다(이 예에서는 "Periaptly, Inc").
A H LI 8521935
링크
link Looker의 기본 드릴 링크 URL입니다. 일부 필드에는 기본 링크가 없습니다. A H LI S /explore/thelook/orders?fields=orders.order_amount&limit=500
linked_value Looker의 기본 형식과 기본 링크가 있는 필드의 값입니다. 측정에는 기본 연결이 없으므로 linked_value와 호환되려면 drill_fields 매개변수를 구성해야 합니다. A H LI 8,521,935.00달러
필터
_filters['view_name.field_name'] view_name.field_name를 사용하여 요청하는 필드에 사용자 필터가 적용됩니다.

_filters['view_name.field_name']은(는) 파생된 테이블sql 매개변수에서도 지원되지만 다른 sql 매개변수에서는 지원되지 않습니다.

파생된 테이블 sql 매개변수에서 _filters['view_name.field_name']를 사용하려면 sql_quote 액체 필터가 필요합니다.
A DE H LA LI null 아님
{% date_start date_filter_name %} date_filter_name을 사용하여 요청하는 날짜 필터의 시작일 자세한 내용은 date_startdate_end 사용 섹션을 참고하세요. S 2017-01-01
{% date_end date_filter_name %} date_filter_name을 사용하여 요청하는 날짜 필터의 종료일 자세한 내용은 date_startdate_end 사용 섹션을 참고하세요. S 2017-01-01
{% condition filter_name %}
sql_or_lookml_reference
{% endcondition %}
요청하는 필터의 값은 sql_or_lookml_reference를 SQL로 적용하여 filter_name를 사용합니다. 이 변수는 템플릿 필터조건부 조인과 함께 사용됩니다. S 예는 템플릿 필터 문서 페이지 및 sql_on 문서 페이지의 조건부 조인 섹션을 참고하세요.
{% parameter parameter_name %} parameter_name를 사용하여 요청하는 매개변수 필터의 값입니다. DE LA S 예시는 parameter 매개변수 문서 페이지를 참고하세요.
parameter_name._parameter_value parameter_name를 사용하여 요청하는 매개변수 필터의 값을 논리 문에 삽입합니다. DE H LA LI S 중요한 세부정보 및 예는 parameter 매개변수 문서 페이지를 참고하세요.
사용자 속성
_user_attributes['name_of_attribute'] 사용자 속성을 사용 중인 경우 쿼리를 실행하는 특정 사용자에 관해 name_of_attribute로 요청하는 사용자 속성의 값입니다. _user_attributes['name_of_attribute'] 변수는 고급 필터 구문에서도 사용할 수 있습니다. A DE H LA LI S DV F 북동쪽
(예를 들어 사용자 속성이 "지역"인 경우)

추가 예를 보려면 동적 스키마 및 테이블 이름 삽입에 사용자 속성 사용 도움말을 참조하세요.
_localization['localization_key'] 사용자 언어를 기반으로 모델의 문자열 파일에 정의된 현지화 키와 연결된 값을 반환합니다. DV F 예시는 LookML 모델 현지화 문서 페이지를 참고하세요.
LookML 객체
_model._name 이 필드의 모델 이름입니다. A DE H LA LI S 보세요
_view._name 이 필드의 뷰 이름입니다. A DE H LA LI S orders
_explore._name 이 필드의 탐색 이름입니다. A DE H LA LI S 주문_상품
_explore._dashboard_url 22.12 현재 대시보드의 상대 URL입니다. H LI /dashboards/5
_field._name view_name.field_name 형식의 필드 자체 이름 A DE H LA LI S 주문.총_주문_금액
쿼리
_query._query_timezone 쿼리가 실행된 시간대입니다. A DE H LA LI S America/Los_Angeles
view_name._in_query 뷰의 뷰가 포함된 필드가 쿼리에 있는 경우 true를 반환합니다. DE LA LI S true
view_name.field_name._in_query view_name.field_name로 요청하는 필드가 쿼리 데이터 표에 표시되거나, 쿼리 필터에 포함되거나, required_fields 매개변수를 통해 쿼리에 포함된 경우 true를 반환합니다. DE LA LI S true
view_name.field_name._is_selected view_name.field_name로 요청하는 필드가 쿼리 데이터 표에 표시되면 true를 반환합니다. DE LA LI S true
view_name.field_name._is_filtered view_name.field_name로 요청하는 필드가 쿼리 필터에 포함된 경우 true를 반환합니다. DE LA LI S true

date_startdate_end의 사용

date_startdate_end Liquid 변수는 BigQuery와 같이 날짜별로 여러 테이블로 데이터를 분할하는 데이터베이스 방언에 매우 유용합니다. {% date_start date_filter_name %} 또는 {% date_end date_filter_name %} 태그 구문을 사용해야 합니다. 출력 구문 {{ date_start date_filter_name }} 또는 {{ date_end date_filter_name }}은 일반적으로 텍스트를 생성하는 데 사용되더라도 사용할 수 없습니다.

예를 들어 다음과 같은 뷰를 뷰에서 만들 수 있습니다.


filter: new_filter_test{
  type: date
}

dimension: filter_start{
  type: date
  sql: {% date_start new_filter_test %} ;;
}

dimension: filter_end{
  type: date
  sql: {% date_end new_filter_test %} ;;
}

2022년 4월 1일부터 2022년 5월 25일까지 기간을 기준으로 new_filter_test에서 필터링할 경우 filter_start 측정기준은 2022년 4월 1일로, filter_end2022년 5월 25일로 평가됩니다.

date_startdate_end에 관한 다음 사항에 유의하세요.

  • 사용자가 Liquid 변수의 date_filter 부분에 지정된 필터를 사용하여 쿼리를 필터링하지 않으면 {% date_start date_filter %}{% date_end date_filter %}이 모두 NULL로 평가됩니다.

  • 사용자가 Liquid 변수의 date_filter 부분에 지정된 필터에 관해 끝이 가까운 범위로 쿼리를 필터링하면 범위의 끝이 NULL로 확인됩니다. 예를 들어 탐색에서 사용자가 new_filter_test2022-06-07 이전으로 설정하면 example을 사용하면 {% date_start date_filter %} 출력은 NULL입니다. 사용자가 종료일은 있지만 시작일은 없는 범위이기 때문입니다. 사용자가 new_filter_test2022-06-07 이후로 설정하면 {% date_end date_filter %} 출력은 NULL이 됩니다.

Liquid 출력에서 NULL 결과가 표시될 수 있는 두 경우 중 하나의 경우, 데이터베이스 언어에 따라 IFNULL 또는 COALESCE과 같은 NULL 값을 고려하기 위해 sql 매개변수에 SQL 함수를 포함해야 합니다.

date_startdate_end 유동 변수를 사용하여 날짜로 파티션을 나눈 테이블을 처리하는 방법에 대한 자세한 설명은 date_start 및 date_end 사용 Looker 커뮤니티 주제를 참고하세요.

유연한 기간별 분석을 위해 date_startdate_end을 사용하는 예시는 애널리틱스 블록 유연한 기간별 분석 도움말을 참조하세요.

_in_query, _is_selected, _is_filtered의 사용

_in_query, _is_selected, _is_filtered 변수는 이 예시와 같이 참 또는 거짓 값을 제공합니다. 따라서 적절한 유형의 유동 변수 참조 선택이 중요합니다.

쿼리에 특정 항목이 포함되었는지 확인하려면 이를 기반으로 특정 텍스트를 삽입하려면 다음과 같은 패턴을 사용해야 합니다.

{% dynamic if view_name.field_name._in_query %}
  something to insert if true
{% dynamic else %}
  something to insert if false
{% dynamic endif %}

문자 그대로 'true' 또는 'false'까지 삽입하려면 다음과 같은 패턴을 사용합니다.

{{ view_name.field_name._in_query }}

일부 SQL 방언은 리터럴 단어 'true' 및 'false'를 지원하지 않습니다. 이 경우 sql_boolean 필터를 추가하여 필요한 true와 false 값을 얻을 수 있습니다.

{{ view_name.field_name._in_query | sql_boolean }}

_is_selected_is_filtered 변수에도 동일한 패턴이 적용됩니다.

label 매개변수와 함께 유동 변수 사용

필드 label 매개변수에서 유동 변수를 사용하여 필드 선택 도구와 시각화에서 필드 모양을 동적으로 변경할 수 있습니다. 이 페이지에서 섹션을 참고하여 label 매개변수와 함께 사용할 유동 변수를 확인하세요.

유동 변수는 label 매개변수, view_label 매개변수, group_label 매개변수, group_item_label 매개변수를 비롯한 필드 수준의 라벨 매개변수와 함께 작동하지만 모델, 탐색, 보기 또는 참조 선 수준의 라벨 매개변수 또는 link의 하위 매개변수로는 작동하지 않습니다.

다음 변수를 label와 함께 사용하여 필드 선택 도구, 탐색의 데이터 섹션에 있는 열 헤더, 시각화에 적용할 수 있습니다.

  • _model._name
  • _view._name
  • _explore._name
  • _field._name
  • _user_attributes['name_of_attribute']

위의 에서 LA로 표시된 다른 유동 변수 (예: 필터 기반 값 (예: _filters)을 반환하거나 변수 값을 확인하기 전에 쿼리를 실행해야 하는 변수)는 필드 선택 도구의 필드 이름을 변경하지 않습니다. 이 경우 필드 이름은 결과 시각화에서만 변경됩니다.

label과 함께 parameter 유동 변수를 사용할 때 label에는 value 하위 매개변수의 값이 전달됩니다.

description 매개변수와 함께 유동 변수 사용

description 매개변수와 함께 Liquid 변수를 사용하여 필드의 설명을 동적으로 변경할 수 있습니다. 이 설명은 사용자가 필드 선택 도구에서 필드 정보 아이콘, 탐색의 데이터 섹션에서 필드의 열 이름 또는 표 차트의 필드 열 이름 위로 마우스를 가져가면 표시됩니다. 이 페이지에서 유동 변수 정의 섹션의 표를 보면 description 매개변수와 함께 작동하는 유동 변수를 확인할 수 있습니다.

액체 변수는 필드 수준에서만 description 매개변수와 함께 작동합니다. 탐색 수준에서는 description 매개변수와 함께 작동하지 않습니다.

다음 변수를 description와 함께 사용하여 필드 선택 도구, 탐색의 데이터 섹션, 표 차트의 열 헤더에 적용할 수 있습니다.

  • _model._name
  • _view._name
  • _explore._name
  • _field._name
  • _user_attributes['name_of_attribute']

위의 에서 DE로 표시된 다른 유동 변수(예: _filters에 따라 필터로 값을 반환하거나 변수 값이 결정되기 전에 쿼리를 실행해야 하는 유동 변수)는 필드 선택 도구 또는 탐색의 데이터 섹션에서 설명을 변경하지 않습니다. 이 유동 변수는 사용자가 표 차트의 필드 열 위로 마우스를 가져가면 표시되는 설명에만 영향을 미칩니다.

description 매개변수에서 Liquid를 사용하는 방법의 예는 description 매개변수 문서 페이지를 참고하세요.

고려사항

yesno 필드 참조

yesno 필드의 값을 참조하는 경우 이 값은 대소문자를 구분합니다. Yes 또는 No을 사용합니다. 예를 들면 다음과 같습니다.

{% dynamic if value == 'Yes' %}

Liquid 변수와 함께 논리 연산자 사용하기

Liquid 변수에서는 논리 연산자 and, or, not를 사용할 수 있습니다. Liquid의 논리 연산자는 대소문자를 구분하며 모두 소문자로 작성해야 합니다. 예를 들면 다음과 같습니다.

{% dynamic if value == "Shirt" or value == "Shoes" %}
  This is a shirt or shoes.
{% dynamic endif %}

"변수를 찾을 수 없음" 오류 발생

Liquid에서 이 오류가 발생하는 한 가지 이유는 다음과 같이 {{ }}{% %}을 동시에 사용하는 경우입니다.

{% if value > {{ search_latency_top_hr.limit_95._value }} %}

대신 를 수행합니다.

{% dynamic if value > search_latency_top_hr.limit_95._value %}

템플릿 필터를 사용하는 경우 파생된 테이블에 조인하지 않은 테이블 이름을 참조하고 있는지 확인합니다.

명명 규칙은 쿼리 그룹화에 영향을 미칠 수 있음

이름이 value인 필드가 있으면 이 필드는 value Liquid 변수가 같은 뷰 내의 다른 필드에서 참조될 때마다 탐색 쿼리의 GROUP BY 절에 포함됩니다.

예를 들면 다음과 같습니다.

dimension: id {
  primary_key: true
  type: number
  sql: ${TABLE}.id ;;
  html:
    {% dynamic if value > 10 %}
      <font color="darkgreen">{{ rendered_value }}</font>
    {% elsif value > 11 %}
      <font color="goldenrod">{{ rendered_value }}</font>
    {% dynamic else %}
      <font color="darkred">{{ rendered_value }}</font>
    {% dynamic endif %} ;;
}

dimension: value {
  sql: ${TABLE}.status ;;
  type: string
}

이렇게 하면 탐색에서 id만 선택한 경우 다음 SQL이 생성됩니다.

SELECT
orders.id AS orders.id,
orders.status AS orders.value
FROM order_items
LEFT JOIN orders ON order_items.order_id = orders.id

GROUP BY 1,2
ORDER BY orders.id
LIMIT 500

이 그룹화 동작을 방지하려면 필드를 명시적으로 참조하도록 value 변수의 범위를 필드 이름으로 지정해야 합니다.

dimension: id {
  primary_key: true
  type: number
  sql: ${TABLE}.id ;;
  html:
    {% dynamic if value > 10 %}
      <font color="darkgreen">{{ id._rendered_value }}</font>
    {% elsif value > 11 %}
      <font color="goldenrod">{{ id._rendered_value }}</font>
    {% dynamic else %}
      <font color="darkred">{{ id._rendered_value }}</font>
    {% dynamic endif %} ;;
}

파생된 테이블에서 _filters['view_name.field_name']를 사용하려면 sql_quote가 필요합니다.

SQL 기반 파생 테이블을 정의할 때 SQL에서 값이 렌더링되고 필터가 문자열 값을 반환하는 _filters['view_name.field_name'] Liquid 변수를 사용할 경우 출력에 작은따옴표를 추가해야 합니다. sql_quote 액체 필터를 포함하면 됩니다.

예를 들어 derived_table 매개변수의 sql 매개변수에서 이러한 액체 변수 중 하나를 사용하는 경우:

{{ _filters['view_name.field_name'] }}

또는

{% assign foo = _filters['view_name.field_name']  %} foo

Liquid 필터 선언에 Liquid 필터 | sql_quote를 추가할 수 있습니다.

{{ _filters['view_name.field_name'] | sql_quote }}

{% assign foo = _filters['view_name.field_name'] | sql_quote %} foo

다음은 _filters['view_name.field_name'] 변수를 사용하는 파생 테이블의 예입니다.

view: users_sql_based_dt {
  derived_table: {
    sql:
    SELECT
      users.id AS id,
          (DATE(users.created_at)) AS created_date,
      users.city AS city,
      COUNT(*) AS user_count
    FROM
        public.users AS users
    {% dynamic if users_sql_based_dt.city._is_filtered %}
      WHERE
        users.city = {{ _filters['users_sql_based_dt.city'] | sql_quote  }}
    {% dynamic endif %}
    GROUP BY
        1,
        2,
        3
    ORDER BY
        2 DESC
      ;;
  }

city 필드는 SQL에 출력될 문자열이므로 출력 SQL이 작은따옴표로 묶이도록 하려면 sql_quote Liquid 필터가 필요합니다. 결과 탐색에서 사용자가 도시 이름을 필터로 지정하면 Looker가 도시 이름 문자열을 따옴표로 묶습니다. 사용자가 도시 값 New York에서 탐색 쿼리를 필터링하는 경우 Looker에서 이 SQL을 데이터베이스에 전송합니다.

WHERE
    users.city = 'New York'

값이 SQL에서 렌더링되는 파생 테이블의 문자열 필드에 _filters['view_name.field_name'] Liquid 변수를 사용하는 경우 | sql_quote를 Liquid 변수에 추가하지 않으면 다음과 같은 LookML 경고가 표시됩니다.

Using "_filters[]" in Derived Table SQL without "sql_quote" is discouraged.

다음 구문과 함께 sql_quote를 사용하여 배열의 여러 값을 따옴표로 묶을 수도 있습니다.

{{ _filters['view_name.field_name'] |split(",") | sql_quote |join(",") }}

다음은 IN 문의 입력으로 액체 출력을 사용하는 예입니다.

 WHERE
    users.city IN({{ _filters['users_sql_based_dt.city'] |split(",") | sql_quote |join(",") }})

이 구문을 사용하면 Liquid 출력에서 전체 목록('value1, value2, value3')을 따옴표로 묶는 대신 개별 값('value1','value2','value3')을 따옴표로 묶습니다.

집계 방식의 액체 변수는 그룹에 영향을 줌

측정값의 link 또는 html 매개변수에서 {{ view_name.field_name._value }} 구문이나 {{ field_name._value }} 구문을 사용하여 다른 필드의 값을 참조할 때 Looker는 해당 필드를 SQL 쿼리로 가져와 필드 값을 가져옵니다. 따라서 Liquid는 SQL 쿼리 생성 방식과 GROUP BY 절에 사용되는 열 수에 영향을 미칠 수 있으며, 이로 인해 type: count 측정값과 같은 집계 방법을 사용할 때 예상치 못한 동작이 발생할 수 있습니다.

예를 들어 다음과 같은 두 가지 측정 조치가 있다고 가정해 보겠습니다.

measure: count_without_liquid {
  type: count
}

measure: count_with_liquid {
  type: count
  link: {
    label: "Status Count"
    url: "https://www.google.com/search?q={{ status._value }}"
  }
}

count_without_liquid 측정값을 사용하여 쿼리를 생성하면 다음 결과를 얻습니다.

생성된 월 및 액체가 없는 개수 입력란이 선택된 쿼리의 데이터 테이블이 생성됩니다.

이 경우 쿼리는 매월 하나의 개수를 반환합니다. 이전 결과를 위해 생성된 SQL은 다음과 같습니다.

SELECT
  TO_CHAR(DATE_TRUNC('month', order_items.created_at ), 'YYYY-MM') AS "order_items.created_month",
  COUNT(*) AS "order_items.count_without_liquid"
FROM order_items AS order_items

GROUP BY DATE_TRUNC('month', order_items.created_at )
ORDER BY 1 DESC
LIMIT 500

그러나 count_with_liquid 측정을 사용하여 쿼리를 생성하면 다음 결과를 얻습니다.

생성된 월 및 액체 수로 선택한 필드가 선택된 쿼리의 데이터 테이블이 생성됩니다.

이 예시에서는 쿼리의 월별 횟수 대신 월간 및 각 상태에 대한 횟수를 수신하는 것을 볼 수 있습니다. 생성된 SQL에서 값을 검색할 수 있도록 쿼리에 status 필드가 추가되었기 때문입니다. 쿼리에 추가되었기 때문에 GROUP BY 절에도 추가되었습니다.

SELECT
  TO_CHAR(DATE_TRUNC('month', order_items.created_at ), 'YYYY-MM') AS "order_items.created_month",
    order_items.status AS "order_items.status",
    COUNT(*) AS "order_items.count_without_liquid"
FROM order_items AS order_items

GROUP BY DATE_TRUNC('month', order_items.created_at ),2
ORDER BY 1 DESC
LIMIT 500

이를 막기 위한 한 가지 옵션은 row[] 함수를 Liquid 변수와 함께 사용하는 것입니다. 이 함수는 렌더링된 결과에서 값을 가져오므로 참조된 필드를 SQL 쿼리에 추가하지 않습니다.

  link: {
    label: "{% dynamic if row['view_name.field_name'] %} some_label {% dynamic endif %}"
    url: "https://www.google.com/search?q={{ row['view_name.field_name'] }}"
  }

이 구문을 사용할 때는 link 매개변수가 필드가 선택되었거나 다른 방법으로 쿼리에 포함된 경우에만 작동합니다.

요약하면 row[] 구문을 사용하면 {{ field_name._value }}와 마찬가지로 필드가 쿼리에 추가되지 않습니다. 동적 라벨로 입력란을 사용할 수 없는 경우 링크에 라벨이 없어 링크가 링크 메뉴에서 사라집니다.