filter

사용

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

허용
필터 이름을 지정하는 Looker 식별자

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

정의

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

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

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

측정기준, 필터, 파라미터 유형 문서 페이지에서 자세히 설명된 대로 여러 유형의 필터 필드가 있습니다.

filter의 하위 파라미터

LookML 필드에 사용할 수 있는 하위 파라미터 목록은 필드 파라미터 참조 페이지를 확인하세요.

예시

filter 매개변수를 사용하는 몇 가지 예시는 다음과 같습니다.

사용자 지정 필터 만들기

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

filter: order_region {
  type: string
}

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

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

sql 매개변수를 filter와 함께 사용할 수도 있습니다. 이 매개변수는 필터에 값이 있을 때마다 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 사용 섹션을 참조하세요.filtersql

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 매개변수는 SQL을 쿼리의 WHERE 절에 직접 적용합니다. 이 경우 sqlfilter_on_field_to_hide 필터에 지정된 필터 조건을 가져와서 ${field_to_hide} 측정기준에 적용합니다.

이렇게 하면 사용자는 field_to_hide 측정기준이 숨겨진 상태에서 filter_on_field_to_hide 필터로 field_to_hide를 기준으로 쿼리를 필터링할 수 있습니다.