액체 변수 참조

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

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

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

유동 변수 사용

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

2가지 액체 사용

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

  1. 출력 구문: 이 유형의 유형은 텍스트를 삽입할 수 있으며 Looker에서 Liquid를 사용하는 가장 일반적인 방법일 수 있습니다. 이 방법에서는 Liquid 변수를 중괄호 두 개에 묶습니다. 예: {{ value }}
  2. 태그 구문: 이 유형의 사용은 대개 텍스트를 삽입하지 않으며, 대신 논리적 비교 및 기타 Liquid 작업에 사용됩니다. 이 방법에서는 Liquid 변수를 중괄호 하나와 단일 퍼센트 기호로 묶습니다. 예: {% 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:
  {% if event.created_date._in_query %}
    event_by_day
  {% elsif event.created_week._in_query %}
    event_by_week
  {% else %}
    event
  {% endif %} ;;

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

dimension: email {
  label: "{% if _model._name == 'thelook' %} Looker Registered Email Address {% else %} External Email Address {% 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의 기본 형식이 지정된 필드의 값입니다.

Liquid를 사용한 쉬운 날짜 형식 지정 고객센터 도움말에 표시된 대로 rendered_value에서 날짜 형식 지정 구문을 참조할 수 있습니다.

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

예를 들어 'Periaptly, Inc'와 같은 쉼표가 포함된 문자열 값을 필터링하면 value 변수는 'Periaptly'와 'Inc'라는 두 개의 다른 문자열을 반환합니다. 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 변수는 이 예시와 같이 참 또는 거짓 값을 제공합니다. 따라서 적절한 유형의 유동 변수 참조 선택이 중요합니다.

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

{% if view_name.field_name._in_query %}
  something to insert if true
{% else %}
  something to insert if false
{% 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을 사용합니다. 예를 들면 다음과 같습니다.

{% if value == 'Yes' %}

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

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

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

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

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

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

대신 를 수행합니다.

{% 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:
    {% if value > 10 %}
      <font color="darkgreen">{{ rendered_value }}</font>
    {% elsif value > 11 %}
      <font color="goldenrod">{{ rendered_value }}</font>
    {% else %}
      <font color="darkred">{{ rendered_value }}</font>
    {% 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:
    {% if value > 10 %}
      <font color="darkgreen">{{ id._rendered_value }}</font>
    {% elsif value > 11 %}
      <font color="goldenrod">{{ id._rendered_value }}</font>
    {% else %}
      <font color="darkred">{{ id._rendered_value }}</font>
    {% 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
    {% if users_sql_based_dt.city._is_filtered %}
      WHERE
        users.city = {{ _filters['users_sql_based_dt.city'] | sql_quote  }}
    {% 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: "{% if row['view_name.field_name'] %} some_label {% endif %}"
    url: "https://www.google.com/search?q={{ row['view_name.field_name'] }}"
  }

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

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