Skip to main content
Filtered measures can be built using aggregation alongside a dimension filter. When building measures in the UI, filters may only be available for standard measures and quick-aggregates. For measures built with custom SQL logic, best practice is to define filters in the YAML definition. See full page on filter syntax here.

Syntax

<measure_name>:
  aggregate_type: <type>
  filters:
    <field_name>:
      <filter_condition>: <value>

Properties

measure_name
object[]
The name of the measure.

Examples

Count with multiple filters
count_california_seniors:
  aggregate_type: count
  filters:
    age:
      greater_than_or_equal_to: 65
    state:
      is: California
Filter with array values
count_ny_or_nj:
  aggregate_type: count
  filters:
    state:
      is: [New York, New Jersey]
Filter using modeled boolean field
### note filtered measures can point to raw columns or modeled fields
dimensions:
  is_big:
    sql: ${employee_count} > 100000
measures:
  count_large:
    aggregate_type: count
    filters:
      is_big:
        is: true
Complex logic with boolean dimension
complex_dimension_example:
  sql: ${state} = 'California' OR ${age} > 65
count_complex_logic:
  aggregate_type: count
  filters:
    complex_dimension_example:
      is: true
Filter by query (top 10 users)
count_top_10_users:
  format: NUMBER
  aggregate_type: count
  filters:
    id:
      field_name_in_query: order_items.user_id
      query_structure:
        fields: [ order_items.user_id, order_items.sale_price_sum ]
        base_view: order_items
        limit: 10
        sorts:
          - field: order_items.sale_price_sum
            desc: true
        topic: order_items