filter

사용

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

수락
필터 이름을 지정하는 Looker 식별자

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

정의

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

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

  • 특정 보기 내에서 고유해야 합니다.
  • a~z (대문자 없음), 0~9 또는 _ 문자로 구성됨
  • 문자로 시작합니다.

측정기준, 필터, 파라미터 유형 문서 페이지에서 자세히 설명한 것처럼 다양한 유형의 필터 필드가 있습니다.

filter의 하위 매개변수

LookML 필드에 사용할 수 있는 하위 매개변수 목록은 필드 매개변수 참조 페이지를 참고하세요.

예시

다음은 filter 파라미터 사용의 몇 가지 예입니다.

사용자 지정 필터 만들기

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

filter: order_region {
  type: string
}

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

템플릿 필터 및 Liquid 매개변수 문서 페이지에 표시된 대로 파생 테이블을 정의하여 사용자가 지정한 지역의 고객의 평생 지출을 계산합니다. 이 예시에서는 이전 예시에서 만든 filter를 템플릿 필터의 일부로 사용합니다. filter 입력은 Liquid 변수와 함께 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
  }
}

filter에서 sql 매개변수 사용

필터에 값이 있을 때마다 SQL WHERE 절에 적용되는 filter와 함께 sql 매개변수를 사용할 수도 있습니다. 이를 통해 사용자 필터 입력에 따라 동적 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과 함께 sql 매개변수를 사용하는 방법의 예는 이 페이지의 filter을 사용하여 숨겨진 필드로 필터링 섹션을 참고하세요.

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를 사용하여 문제가 되는 측정기준을 숨깁니다. 즉, 사용자가 Explore 필드 선택 도구에서 측정기준을 선택할 수 없습니다.

      dimension: field_to_hide {
        type: string
        hidden: yes
        sql: ${TABLE}.field_to_hide ;;
      }
    
  2. 이제 field_to_hide 측정기준에 연결할 filter 필드를 만듭니다.

    filter: filter_on_field_to_hide {
      type: string
      sql: {% condition filter_on_field_to_hide %} ${field_to_hide} {% endcondition %} ;;
    }
    

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

이렇게 하면 사용자가 filter_on_field_to_hide 필터를 사용하여 field_to_hide별로 쿼리를 필터링할 수 있으며 field_to_hide 측정기준은 숨겨진 상태로 유지됩니다.