Filters in the GoodData Platform

Sometimes you want to analyze only a subset of your data. To achieve this you can use filters. In a GoodData workspace, you can filter data from being displayed using the following mechanisms:

Filter Type

Description

Data Permissions Filter

A Data Permissions filter is an attribute-based filter that is applied to all data queried from the workspace. These filters enable workspace developers to filter content for specific users, so that sensitive or irrelevant data is masked from display to the specified user.  Data Permissions filters cannot be overridden. They are always applied to any query executed by an affected user from the Portal.

Note: Data Permissions filters are considered an administrator-level configuration. For more information, see Data Permissions.

Dashboard Filter

A dashboard filter can be used to filter the data to display across all reports in a dashboard. It is based on values for an attribute, dates, or defined groups that are chosen from a selector embedded in the dashboard.  For example, users can choose a date or range of dates in the dashboard filter, and the displayed data in all reports are updated to show only the values that apply to the selected date(s).

Report/Insight Filter

Similar to a dashboard filter, a report filter changes the values that are displayed in the report. However, report filters are specified by the report builder and cannot be modified by users with a user role of Viewers or Viewers (embedded only) in the workspace.

Metric Filter

Inside of a metric definition, you can filter the computed data using a WHERE clause, which contains the conditions under which the selected data can be used in the computation.

To learn how to apply filters in your data analysis, see Filter Expressions.

 

Filter Evaluation

In a dashboard, one or more of the above filters can be applied. How these filters are evaluated is based on the following rules:

  • Data Permissions filters are always applied. They cannot be overridden or ignored.
  • Dashboard filters change report filters on the specified attribute.
    • If there is a dashboard filter and a report filter on two different attributes, data must match both filter conditions in order to appear in the report. In the MAQL query for the report, a logical AND is applied between the filters.
      • For example, suppose the user selects the dashboard filter for the States attribute to be set to California. On one of the reports in the dashboard, there is a report filter set to Department=Distribution. In the report, a basic metric such as SELECT SUM(Sales) is filtered by both parent filters. The net result is that data is extracted from the fact table for this summation only if it applied to States=California and Department=Distribution.
    • If the dashboard filter and report filter are on the same attribute, the dashboard filter overrides the report filter.
      • Suppose there is a filter for the State attribute to be set to California in the report definition. However, on a dashboard the user can select his own State in a dashboard filter. If they choose State = Nevada, then this selection only is applied to the report metrics.
  • Report filters are applied in addition to any metric filters.
    • Suppose the report filter is Group = X and the metric definition is SELECT SUM(Sales) WHERE Priority = Urgent. The effective filter on the calculated metric is the following: Group = X AND Priority = Urgent.

After a change introduced in June 2018 to filter validation

When the metric editor checks a relation in a filter, it compares the attribute to the corresponding attribute values and not to attribute values of a different attribute. Metrics created before this change will continue to work but it is neccesary to repair errors in order to edit them. You can still compare different date attributes.

Examples

Correct:

... WHERE Priority = High(Priority) 

Incorrect:

... WHERE State = High(Priority)

Limitations

Some filters cannot be applied with other filters. Examples:

  • If the report filter is set to Group = X and the metric filter is set to Group = Y, the generated value for the metric in the report is null. Both filters are applied to the data, and it is not possible to have data associated with two values of an attribute.

  • If two filters are set to conflicting attribute values in the same hierarchy, you may generate null data. For example, if the dashboard filter is set by a user to State = California, and the report filter is fixed on City = New York City, the report contains no data.

  • Some filters cannot be applied to the metrics because no relation has been defined between the fact table and an attribute to be filtered. For example, you cannot filter your sales metric (SELECT SUM(Sales)) by the attribute filter Marketing Campaign = TV, since marketing activities are tracked using different facts stored in a different fact table.

Over…To Clause

For advanced filtering using OVER…TO see Advanced Data Permissions Use Cases.

Filter Overrides

At the metric level, you can insert keywords to override dashboard, metric, and report filters. For example, you can include the keyword WITHOUT PARENT FILTER in your metric definition, which prevents any filter in a parent object (metric, report, or dashboard) from being applied. For more information on these filter overrides, see Overriding Parent Filters.