Show/hide columns in a table

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!

0 1 488
1 REPLY 1

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)
Screenshot 2024-08-14 5.09.39 PM.png