Hello!
I want to create a table with multiple columns and also use a filter parameter. When a value is selected in that filter, i want to display only 4 out of 7 columns let's say. When the other value of the filter is selected, display the other 3 columns. Is that possible?
Thank you!
Hello @Mazilinho ,
Thank you for your message.
Yes, this should be possible with LookML parameter and liquid language, more info here.
As per the example of the working code below, I believe you would first need to create the column selector and desired dimension groupings, and then create a "dynamic" dimension based on the parameter value (example of code below)
parameter: column_selector {
label: "Number of column selector"
view_label: "01. Dynamic Analysis"
type: unquoted
default_value: "4"
allowed_value: {
label: "Two (2)"
value: "2"
}
allowed_value: {
label: "Three (3)"
value: "3"
}
allowed_value: {
label: "Four (4)"
value: "4"
}
allowed_value: {
label: "Five (5)"
value: "5"
}
}
dimension: sale_price_tier_01 {
label: "Sale Price Tier"
description: "Sale Price Classification"
type: tier
tiers: [50]
style: integer
sql: ${sale_price} ;;
}
dimension: sale_price_tier_02 {
label: "Sale Price Tier"
description: "Sale Price Classification"
type: tier
tiers: [25, 50]
style: integer
sql: ${sale_price} ;;
}
dimension: sale_price_tier_03 {
label: "Sale Price Tier"
description: "Sale Price Classification"
type: tier
tiers: [10, 25, 50]
style: integer
sql: ${sale_price} ;;
}
dimension: sale_price_tier_04 {
label: "Sale Price Tier"
description: "Sale Price Classification"
type: tier
tiers: [5, 10, 25, 50]
style: integer
sql: ${sale_price} ;;
}
# IMPORTANT - replace the {( )} in the html section below with double { curly brackets (not appreciated in this website)
dimension: dynamic_sale_price_tier {
label: "Sale price tiering"
view_label: "01. Dynamic Analysis"
label_from_parameter: column_selector
type: number
sql:
{% if column_selector._parameter_value == '2' %} ${sale_price_tier_01}
{% elsif column_selector._parameter_value == '3' %} ${sale_price_tier_02}
{% elsif column_selector._parameter_value == '4' %} ${sale_price_tier_03}
{% elsif column_selector._parameter_value == '5' %} ${sale_price_tier_04}
{% else %} ${sale_price_tier_04}
{% endif %}
;;
html:
{% if column_selector._parameter_value == '2' %} {( sale_price_tier_01._rendered_value )}
{% elsif column_selector._parameter_value == '3' %} {( sale_price_tier_02._rendered_value )}
{% elsif column_selector._parameter_value == '4' %} {( sale_price_tier_03._rendered_value )}
{% elsif column_selector._parameter_value == '5' %} {( sale_price_tier_04._rendered_value )}
{% else %} {( sale_price_tier_04._rendered_value )}
{% endif %}
;;
}
This should be enough to make it work leveraging your dynamic dimension as the pivot in your Explore and voilร ! (example attached below)