템플릿 필터 사용

용도

view: view_name {
필터: filter_name { ... }
}
계층 구조
filter
기본값
없음

결제 가능
필터의 이름을 지정하는 Looker 식별자

특수 규칙
필터 이름은 동일한 view 내에서 다른 필터, dimension 또는 measure와 공유할 수 없습니다.

정의

filter 매개변수는 필터 전용 필드와 해당 필터의 이름을 선언합니다. 사용자는 탐색 중에 필터 전용 필드를 필터로 추가할 수 있지만 결과 세트에 추가할 수는 없습니다. 이러한 필터 전용 필드는 고급 LookML 주제인 템플릿 필터를 통해 유용합니다. filter를 사용하여 숨겨진 필드로 필터링 예를 참조할 수도 있습니다.

필터 이름은 다음 요건을 충족해야 합니다.

  • 특정 뷰 내에서 고유해야 합니다.
  • a부터 z까지의 문자(대문자 없음), 0~9 또는 _로 구성
  • 영문자로 시작해야 합니다.

필터 입력란에는 측정기준, 필터, 매개변수 유형 도움말 페이지에 자세히 설명되어 있습니다.

Examples

다음은 filter 매개변수 사용에 관한 예입니다.

사용자 지정 필터 만들기

사용자가 order_region를 지정할 수 있는 필터를 만듭니다.

filter: order_region {
  type: string
}

템플릿 필터로 동적 파생 테이블 정의

템플릿 필터 및 유동 매개변수 문서 페이지에 표시된 대로 파생된 표를 정의하여 사용자가 지정한 지역의 고객 전체 기간 지출을 계산합니다. 이 예에서는 이전 예에서 만든 filter를 템플릿 필터의 일부로 사용합니다. filter 입력은 WHERE 절에서 Liquid 변수와 함께 사용됩니다.

view: customer_facts {
  derived_table: {
    sql:
      SELECT
        customer_id,
        SUM(sale_price) AS lifetime_spend
      FROM
        order
      WHERE
        {% condition order_region %} order.region {% endcondition %}
      GROUP BY 1
    ;;
  }

  filter: order_region {
    type: string
  }
}

filter와 함께 sql 매개변수 사용

filter와 함께 sql 매개변수를 사용할 수도 있습니다. 이 값은 필터에 값이 있을 때마다 SQL WHERE 절에 적용됩니다. 이렇게 하면 사용자 필터 입력을 기반으로 동적 WHERE 절이 허용됩니다.

다음 예에서는 데이터 세트에 존재하는 사용자 이름만 허용하는 필터를 만듭니다.

filter: user_enabled {
  type: string
  suggest_dimension: user_name
  sql: EXISTS (SELECT user_id FROM users WHERE {% condition %} user_name {% endcondition %} and state = 'enabled') ;;
}

위의 예에서 데이터 세트에 있는 사용자 이름의 전체 목록이 'Zach', 'Erin', 'Brett'이면 다음과 같은 WHERE 절이 필터에 적용됩니다.

WHERE EXISTS (SELECT user_id FROM users WHERE user_name in ('Zach', 'Erin', 'Brett') and state = 'enabled')

이 페이지에서 filter를 사용하여 숨겨진 필드로 필터링 섹션을 참고하여 filter에서 sql 매개변수를 사용하는 방법의 예시를 확인하세요.

filter를 사용하여 동적 파생 테이블 및 사용자 정의 필터 정의

동적 리전 값으로 파생된 테이블을 정의하는 위의 예를 사용하여 템플릿 필터와 함께 sql 매개변수를 사용하면 파생된 테이블과 기본 Looker에서 생성된 쿼리 모두에 적용되는 WHERE 절을 동적으로 빌드할 수 있습니다.

view: customer_facts {
  derived_table: {
    sql:
      SELECT
        customer_id,
        SUM(sale_price) AS lifetime_spend
      FROM
        order
      WHERE
        {% condition order_region %} order.region {% endcondition %}
      GROUP BY 1
    ;;
  }
  filter: order_region {
    type: string
    sql: {% condition order_region %} ${region} {% endcondition %} ;;
  }
  dimension: region {
    type: string
    sql: ${TABLE}.region ;;
  }

위 예에서는 사용자가 필터 order_region에 입력을 제공하여 region 측정기준에 값을 제공합니다. 그러면 region 측정기준이 파생된 테이블 SQL에서 WHERE 절의 값을 제공하고, filter 정의의 sql 매개변수로 인해 Looker에서 생성된 쿼리의 WHERE 절 값을 제공합니다.

filter를 사용하여 숨겨진 필드로 필터링

filter를 사용하여 사용자가 필터링할 수 있는 측정기준을 만드는 동시에 사용자가 쿼리에서 측정기준을 선택하지 못하게 할 수 있습니다.

  1. 먼저 hidden: yes를 사용하여 문제가 되는 측정기준을 숨깁니다. 즉, 사용자가 탐색 필드 선택 도구에서 선택할 수 없는 측정기준입니다.
  dimension: field_to_hide {
  type: string
  hidden: yes
  sql: ${TABLE}.field_to_hide ;;
  }
  1. 이제 filter 필드를 만들어 field_to_hide 측정기준에 연결합니다.
filter: filter_on_field_to_hide {
    type: string
    sql: {% condition filter_on_field_to_hide %} ${field_to_hide} {% endcondition %} ;;
  }

filter과 함께 sql 매개변수 사용 예시에서 설명한 것처럼 filter 필드의 sql 매개변수는 SQL을 쿼리의 WHERE 절에 직접 적용합니다. 이 경우 sqlfilter_on_field_to_hide 필터에 지정된 필터 조건을 받아 ${field_to_hide} 측정기준에 적용합니다.

이렇게 하면 field_to_hide 필터를 숨기면서 filter_on_field_to_hide 필터를 사용하여 field_to_hide로 쿼리를 필터링할 수 있습니다.