I’m working an implementing this tutorial.
Context
Here is the architecture of my project:
I’m generating a fake dataset using derived_table function to avoid any confusion around the data set:
> derived_table: {> > sql:> SELECT> FORMAT_DATE("%Y%m%d", CAST(date AS DATE)) as date,> MOD(CAST(100*RAND() AS INT64), 100) as pv> FROM> UNNEST(GENERATE_DATE_ARRAY('2022-01-01', '2022-06-30')) AS date;;> }>### The issue
In my page_view.view I want to add a new measure:
measure: pageview_reference_advanced {
label: "pageview sum ({% if parameters.select_reference_date._is_filtered %}Reference {% else %}Current {% endif %} {% parameter parameters.select_timeframe_advanced %})"
type: sum
sql: ${TABLE}.pv ;;
filters: [current_vs_previous_period_hidden_advanced: "reference"]
this return me the following error:
I don’t understand why the field current_vs_previous_period_hidden_advanced couldn’t be found. It is defined in the PoP_dimensions.view (which is included in my page_view.view) like this:
view: +page_view {
##### CURRENT/REFERENCE [Timeframe] VS PREVIOUS [Timeframe] with dynamic labels and default to today
dimension: current_vs_previous_period_advanced {
label: "Current vs Previous Period"
hidden: yes
description: "Use this dimension alongside \"Select Timeframe\" and \"Select Comparison Type\" Filters to compare a specific timeframe (month, quarter, year) and the corresponding one of the previous year"
type: string
sql:
{% if parameters.select_timeframe_advanced._parameter_value == "ytd" %}
CASE
WHEN ${page_view.date_date} BETWEEN DATE_TRUNC(DATE_TRUNC(${parameters.selected_reference_date_default_today_advanced_raw}, YEAR), MONTH) AND DATE_TRUNC(${parameters.selected_reference_date_default_today_advanced_raw}, DAY)
THEN ${selected_dynamic_timeframe_advanced}
WHEN ${page_view.date_date} BETWEEN DATE_TRUNC(DATE_TRUNC(DATE_SUB(${parameters.selected_reference_date_default_today_advanced_raw}, INTERVAL 1 YEAR), YEAR), MONTH) AND DATE_TRUNC(DATE_SUB(${parameters.selected_reference_date_default_today_advanced_raw}, INTERVAL 1 YEAR), MONTH)
THEN ${selected_dynamic_timeframe_advanced}
ELSE NULL
END
{% else %}
{% if parameters.select_comparison._parameter_value == "year" %}
CASE
WHEN DATE_TRUNC(${page_view.date_raw}, {% parameter parameters.select_timeframe_advanced %}) = DATE_TRUNC(${parameters.selected_reference_date_default_today_advanced_raw}, {% parameter parameters.select_timeframe_advanced %})
THEN ${selected_dynamic_timeframe_advanced}
WHEN DATE_TRUNC(${page_view.date_raw}, {% parameter parameters.select_timeframe_advanced %}) = DATE_TRUNC(DATE_SUB(${parameters.selected_reference_date_default_today_advanced_raw}, INTERVAL 1 YEAR), {% parameter parameters.select_timeframe_advanced %})
THEN ${selected_dynamic_timeframe_advanced}
ELSE NULL
END
{% elsif parameters.select_comparison._parameter_value == "period" %}
CASE
WHEN DATE_TRUNC(${page_view.date_raw}, {% parameter parameters.select_timeframe_advanced %}) = DATE_TRUNC(${parameters.selected_reference_date_default_today_advanced_raw}, {% parameter parameters.select_timeframe_advanced %})
THEN ${selected_dynamic_timeframe_advanced}
WHEN DATE_TRUNC(${page_view.date_raw}, {% parameter parameters.select_timeframe_advanced %}) = DATE_TRUNC(DATE_SUB(${parameters.selected_reference_date_default_today_advanced_raw}, INTERVAL 1 {% parameter parameters.select_timeframe_advanced %}), {% parameter parameters.select_timeframe_advanced %})
THEN ${selected_dynamic_timeframe_advanced}
ELSE NULL
END
{% endif %}
{% endif %}
;;
}
...
}
I think that there is something wrong in the way refinements is setup. any input is welcome.