Instructions
- Filter:
- Use
filterto create a filter-only field (not part of theSELECTclause). - Used often with templated filters in Derived Tables.
- Use
- Parameter:
- Use
parameterto create a user input field (dropdown, date picker, etc.). - Use
allowed_valueto define specific options. - Use with Liquid:
{% parameter parameter_name %}injects the value, orparameter_name._parameter_valuein logic{% if %}.
- Use
- Best Practices:
- Type: Explicitly set the
type(e.g.,string,unquoted,date,number). - Label: Use
labelinallowed_valuefor user-friendly display.
- Type: Explicitly set the
Examples
Filter used in Templated Filter
filter: date_filter {
type: date
}
view: derived_table_view {
derived_table: {
sql: SELECT * FROM table WHERE {% condition date_filter %} created_at {% endcondition %} ;;
}
}
Parameter for Dynamic Measure Selection
parameter: measure_selector {
type: unquoted
allowed_value: { label: "Total Revenue" value: "total_revenue" }
allowed_value: { label: "Total Orders" value: "count" }
}
measure: dynamic_measure {
label_from_parameter: measure_selector
type: number
sql:
{% if measure_selector._parameter_value == 'total_revenue' %}
${total_revenue}
{% else %}
${count}
{% endif %} ;;
}
Parameter for Dynamic Dimension Grouping
parameter: timeframe_picker {
type: unquoted
allowed_value: { label: "Date" value: "date" }
allowed_value: { label: "Week" value: "week" }
allowed_value: { label: "Month" value: "month" }
}
dimension: dynamic_timeframe {
sql:
{% if timeframe_picker._parameter_value == 'date' %} ${created_date}
{% elsif timeframe_picker._parameter_value == 'week' %} ${created_week}
{% else %} ${created_month}
{% endif %} ;;
}