filters

이 페이지에서는 측정값의 일부인 filters 매개변수를 설명합니다.

filtersexplore_source 매개변수 문서 페이지에 설명된 네이티브 파생 테이블의 일부로 사용할 수도 있습니다.

filters대시보드 매개변수 문서 페이지에 설명된 대로 대시보드의 일부로 사용할 수도 있습니다.

filters은 대시보드 요소의 일부로 사용할 수도 있습니다. 이에 관한 대표적인 예는 열 차트 요소 문서 페이지에 나와 있습니다.

용도

view: view_name {
measure: field_name {
필터: [dimension_name: "필터 표현식", dimension_name: "필터 표현식", ... ]
}
}
계층 구조
filters
가능한 필드 유형
측정

결제 가능
측정기준 이름 및 상응하는 Looker 필터 표현식 세트

정의

filters는 측정값 계산에 적용되는 필터 표현식 목록(선택사항)입니다. 집계를 실행하는 다음 측정 유형에서만 작동합니다.

  • type: count
  • type: count_distinct
  • type: sum
  • type: average

필터 구문은 다음과 같습니다.

filters: [dimension_name_1: "Looker filter expression", dimension_name_2: "Looker filter expression", ...]

유효한 필터 표현식을 작성하는 방법에 대한 자세한 내용은 Looker 필터 표기법을 참고하세요. 다음 예와 같이 전체 필터 표현식을 따옴표로 묶습니다.

filters유동 매개변수템플릿 필터와 함께 사용하면 대시보드 또는 Look의 사용자 입력에 따라 동적으로 변경될 수 있는 필터 값으로 동적 필터링 측정값을 만들 수 있습니다. 이 접근 방식을 사용하면 사용자가 전체 WHERE 절에서 전체 쿼리를 필터링하지 않고 특정 측정에만 적용되는 필터 값을 선택할 수 있습니다. 이 페이지의 뒷부분에 나오는 동적 필터링 측정 만들기 섹션을 참조하세요.

Examples

filters를 사용하여 측정하는 방법은 다양합니다. 아래는 일반적인 사용 사례를 위한 몇 가지 솔루션의 예입니다.

여러 필드에서 필터링

이 예에서 측정값은 지난 7일 동안 생성되었고 계정이 사용 중지된 사용자가 아닌 고유 ID를 집계합니다. 이 예에서는 하나의 입력란에 여러 개의 필터를 추가하는 방법도 보여줍니다. 각 필터 표현식에는 완전한 자체 filters 매개변수가 필요합니다.

measure: this_week_count {
  type: count_distinct
  sql: ${TABLE}.id ;;
  filters: [created_date: "7 days", user.status: "-disabled"]
  # Reference fields from other joined views with view_name.field_name syntax
  # Minus sign means "not" in this case, but check notation docs for details
}

yesno 측정기준 필터링

또 다른 예로 1인당 한 행(일반 직원 또는 계약직)이 포함된 데이터를 생각해 보세요. yesno 유형의 is_contractor 필드가 있으며 여기에 계약업체인 경우 yes가 포함됩니다. 이 값은 계약업체의 행만 계산합니다.

measure: contractor_count {
  type: count
  filters: [is_contractor: "yes"]
}

여러 필터 값 추가

다음 예에서 filters 표현식에는 여러 값이 포함되어 있습니다. 측정값은 state 필드의 4개 값 중 하나와 일치하는 모든 행을 집계합니다.

measure: customers_by_state {
  type: count
  filters: [state: "California, Nevada, Washington, Oregon"]
}

숫자 필터 조건 추가

이 예에서는 필터에 숫자 값이 부여됩니다. 다음과 같이 price가 100을 초과하는 주문만 추가합니다.

measure: total_amt_large_orders {
  type: sum
  filters: [orders.price: ">100"]
  sql: ${orders.price} ;;
}

고급 필터 구문 사용

이 예에서 필터에 숫자 값의 범위가 부여됩니다. 이 측정은 만 18~25세 연령대 고객의 총 주문 수를 나타냅니다.

measure: sales_18_to_25 {
  type: sum
  filters: [customers.age: ">=18 AND <=25"]
  sql: ${orders.price} ;;
}

동적 필터링된 측정 만들기

이 예에서 필터는 사용자가 보기 또는 대시보드 필터에서 선택한 상태별로 필터링된 주문 수를 확인할 수 있습니다.

먼저 사용자가 값을 선택할 수 있는 필터 전용 필드를 만듭니다.

  filter: status_filter {
    type: string
    suggest_dimension: status
  }

다음으로 템플릿 필터를 활용하여 이전 필터 전용 필드에서 사용자 선택을 캡처하는 숨겨진 측정기준을 만듭니다. 이 측정기준은 필터 필드에서 값이 선택될 때마다 yes를 반환합니다.

  dimension: status_satisfies_filter {
    type: yesno
    hidden: yes
    sql: {% condition status_filter %} ${status} {% endcondition %} ;;
  }

마지막으로 type: yesno 측정기준을 필터링하는 측정을 만듭니다.

  measure: count_dynamic_status {
    type: count
    filters: [status_satisfies_filter: "yes"]
  }

사용자가 필터 전용 필드의 값을 선택하지 않으면 SQL이 기본값인 1=1로 설정되어 측정값에 영향을 주지 않습니다.

일반 과제

type: number 단위로 filters를 사용하지 않습니다.

많은 사용자가 다음과 같이 type: number의 측정값으로 filters를 사용하려고 합니다.

# Will NOT work
measure: total_food_profit {
  type: number
  sql: ${total_revenue} - ${total_cost} ;;
  filters: [segment: "food"]
}
measure: total_revenue {
  type: sum
  sql: ${revenue} ;;
}
measure: total_cost {
  type: sum
  sql: ${cost} ;;
}

대신 다음과 같이 type: number 측정값을 구성하는 개별 측정값에 filters 매개변수를 적용합니다.

# Will work
measure: total_food_profit {
  type: number
  sql: ${total_food_revenue} - ${total_food_cost} ;;
}
measure: total_food_revenue {
  type: sum
  sql: ${revenue} ;;
  filters: [segment: "food"]
}
measure: total_food_cost {
  type: sum
  sql: ${cost} ;;
  filters: [segment: "food"]
}