Looker Business Analyst study materials
Looker Business Analyst study resources

Looker Business Analyst practice questions

One question at a time. Build your Looker Business Analyst understanding.

First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.

Continue in the practice tool above to load more questions, 50 at a time.

Question 1Business Intelligence and Looker Fundamentals

In Looker, which object stores the underlying database connection credentials and is referenced by a model to determine where SQL is executed?

  1. The project manifest
  2. The dashboard
  3. The connection Correct answer.
  4. The Explore

Explanation

A connection is the Looker object that holds database credentials, dialect, and connection settings such as temp schema. A model file references a connection name so generated SQL runs against that database. Projects, Explores, and dashboards sit above the connection and do not hold credentials.

Question 2Business Intelligence and Looker Fundamentals

A LookML developer wants to reuse a dimension definition across multiple views without copying the SQL. Which LookML feature is designed for this?

  1. Derived tables
  2. Refinements
  3. Extends Correct answer.
  4. Sets

Explanation

The extends parameter lets one view or Explore inherit fields and parameters from another, so shared definitions live in a single base object. Refinements adjust an existing view in place, derived tables create SQL-derived sources, and sets only group field names for use elsewhere.

Question 3Business Intelligence and Looker Fundamentals

Which LookML parameter on a dimension determines whether the field can be used to filter, group, or pivot in an Explore?

  1. type Correct answer.
  2. label
  3. hidden
  4. sql

Explanation

The type parameter declares the dimension's semantic category, such as string, number, time, or yesno, and controls how Looker allows the field to be used in filters, groupings, and pivots. The sql parameter supplies the SQL expression, hidden controls visibility, and label sets display text.

Question 4Business Intelligence and Looker Fundamentals

What is the primary purpose of an Explore in Looker?

  1. To version-control LookML files in Git
  2. To define a queryable starting point that joins views and exposes fields to users Correct answer.
  3. To schedule dashboard deliveries to email recipients
  4. To store database credentials for a project

Explanation

An Explore declares which views are joined and which fields users may query, forming the starting point for ad hoc analysis. Scheduling, credentials, and version control are handled by other Looker features such as schedules, connections, and project Git integration.

Question 5Business Intelligence and Looker Fundamentals

A user wants to see total order revenue broken out by the month the order was placed. Which field type should the developer expose for the month grouping?

  1. A measure of type sum
  2. A yesno dimension
  3. A parameter
  4. A time-based dimension group Correct answer.

Explanation

Time-based dimension groups generate date, week, month, quarter, and year dimensions from one timestamp, so users can group revenue by month. A sum measure aggregates values but cannot provide the month grouping, and yesno dimensions and parameters serve different purposes.

Question 6Business Intelligence and Looker Fundamentals

Which Looker content type is best suited for saving a single reusable query result that can be added to a dashboard?

  1. A Look Correct answer.
  2. A connection
  3. A model
  4. A project

Explanation

A Look saves a single query with its visualization and can be added to dashboards or shared directly. Projects, connections, and models are development and configuration objects, not saved query results.

Question 7Business Intelligence and Looker Fundamentals

In Looker, what does a measure of type count compute?

  1. The number of non-null rows for the referenced field or SQL expression Correct answer.
  2. The sum of numeric values in a column
  3. The average of numeric values in a column
  4. The number of distinct values in a column

Explanation

A count measure returns the row count of non-null values produced by its SQL expression. Distinct value counting uses count_distinct, while sum and average are separate measure types.

Question 8Business Intelligence and Looker Fundamentals

Which statement accurately describes Looker's symmetric aggregates?

  1. They automatically create indexes on the underlying database tables
  2. They prevent duplicated rows from fan-out joins from inflating aggregate totals Correct answer.
  3. They cache query results in Looker's internal database
  4. They convert SQL queries into LookML view files

Explanation

Symmetric aggregates use a distinct primary key combined with aggregate functions so that one-to-many joins do not double-count measures. They do not create indexes, cache results, or generate LookML; those are unrelated capabilities.

Question 9Business Intelligence and Looker Fundamentals

A developer wants users to choose between viewing revenue in USD or EUR without editing the LookML each time. Which LookML feature supports this?

  1. A persistent derived table
  2. A derived table
  3. A hidden dimension
  4. A filter-only field parameter with a corresponding liquid reference Correct answer.

Explanation

A parameter of type unquoted or string with allowed values, exposed as filter-only, lets users select a value that Liquid references inside a measure's SQL. Hidden dimensions, derived tables, and persistent derived tables do not provide runtime user selection of a value.

Question 10Business Intelligence and Looker Fundamentals

When a user runs a query with a measure and no dimensions in an Explore, what does Looker return?

  1. A single aggregate row for the entire result set Correct answer.
  2. One row per joined view
  3. An error because measures require dimensions
  4. One row per primary key in the base view

Explanation

With only measures selected, Looker aggregates across all rows and returns one summary row. It does not fan out per primary key or per view, and the query is valid without dimensions.

Question 11Business Intelligence and Looker Fundamentals

Which LookML parameter is used to declare a one-to-many join relationship so Looker can apply symmetric aggregates correctly?

  1. sql_on
  2. relationship Correct answer.
  3. foreign_key
  4. primary_key

Explanation

The relationship parameter on a join declares one_to_one, one_to_many, many_to_one, or many_to_many, informing Looker how to aggregate safely. foreign_key and primary_key mark key fields, and sql_on supplies the join condition rather than the cardinality.

Question 12Business Intelligence and Looker Fundamentals

A developer needs a view whose underlying data is produced by a SQL query rather than a physical table. Which LookML construct should be used?

  1. An access filter
  2. A derived table Correct answer.
  3. A dimension group
  4. A refinement

Explanation

A derived table defines a view from an inline SQL query, optionally persisted on a schedule. Refinements modify existing views, dimension groups create time fields, and access filters restrict rows for users.

Question 13Business Intelligence and Looker Fundamentals

What is the effect of adding an access_filter to an Explore?

  1. It hides fields from the field picker for certain groups
  2. It changes the join relationship between two views
  3. It restricts the rows a user can retrieve based on a user attribute Correct answer.
  4. It caches query results for a specified duration

Explanation

An access_filter injects a WHERE condition tied to a user attribute, so users only see permitted rows. Field visibility is controlled by hidden or model-level field access, caching by datagroup and persist settings, and join cardinality by relationship.

Question 14Business Intelligence and Looker Fundamentals

Which Looker feature lets a developer define a reusable set of fields that users can apply to a query with one click?

  1. A persistent derived table
  2. A datagroup
  3. A set referenced in a drill or field picker Correct answer.
  4. A user attribute

Explanation

A set is a named collection of fields that can be referenced for drilling, field pickers, or other field-grouping purposes. Datagroups manage caching, persistent derived tables materialize data, and user attributes supply per-user values.

Question 15Business Intelligence and Looker Fundamentals

A measure should only count orders whose status equals 'complete'. Which approach correctly limits the measure in LookML?

  1. Use a filtered measure with filters defined on the status field Correct answer.
  2. Hide the status dimension
  3. Add the status condition to the Explore's always_filter
  4. Set the measure type to count_distinct

Explanation

A measure can carry a filters parameter that applies a WHERE condition to that measure only, so the count reflects completed orders while other measures remain unaffected. always_filter limits the whole query, hiding a dimension changes visibility, and count_distinct changes what is counted.

Question 16Business Intelligence and Looker Fundamentals

Which parameter controls how often Looker should rebuild a persistent derived table?

  1. materialized_view
  2. datagroup_trigger Correct answer.
  3. sql_trigger_value
  4. persist_for

Explanation

datagroup_trigger ties the rebuild of a persistent derived table to a datagroup's caching policy. sql_trigger_value is a legacy trigger based on a SQL query, persist_for sets a fixed retention window, and materialized_view is not a standard LookML rebuild control.

Question 17Business Intelligence and Looker Fundamentals

A developer wants a dimension to display a friendlier label in the field picker without changing its name in LookML. Which parameter should be used?

  1. label Correct answer.
  2. view_label
  3. group_label
  4. description

Explanation

The label parameter changes the display name of a field while its LookML name stays the same. view_label and group_label organize fields into sections, and description adds hover text rather than renaming.

Question 18Business Intelligence and Looker Fundamentals

Which Looker object is required before a developer can write LookML that queries a database?

  1. A user attribute set
  2. A connection configured for the project's model Correct answer.
  3. A schedule delivering to email
  4. A dashboard with at least one tile

Explanation

LookML models reference a connection that supplies database credentials and dialect, so a connection must exist before queries can run. Dashboards, schedules, and user attributes are optional content and access features layered on top.

Question 19Business Intelligence and Looker Fundamentals

A developer sets a dimension's type to tier and defines tiers of 0-100, 100-200, and 200-300. What does Looker produce?

  1. A grouping field that buckets numeric values into the defined ranges Correct answer.
  2. A time-based dimension for period comparison
  3. A measure that sums values in each range
  4. A filter that excludes values outside the ranges

Explanation

A tier dimension buckets a numeric SQL expression into the specified ranges so users can group by band. It does not filter rows, aggregate values, or create time periods.

Question 20Business Intelligence and Looker Fundamentals

What happens when a user pivots a dimension in an Explore query?

  1. The dimension's values become separate columns in the result Correct answer.
  2. The dimension is converted into a measure
  3. The dimension is removed from the query
  4. The dimension is added to the WHERE clause

Explanation

Pivoting turns a dimension's distinct values into additional result columns, producing a cross-tabulated output. The field remains part of the query, is not aggregated into a measure, and is not moved into the filter clause.

Question 21Business Intelligence and Looker Fundamentals

A developer needs a measure that returns the number of unique customers who placed at least one order. Which measure type is appropriate?

  1. average
  2. count_distinct Correct answer.
  3. sum
  4. count

Explanation

count_distinct counts unique non-null values of the referenced expression, so it returns distinct customers. count counts rows, while sum and average aggregate numeric values rather than counting unique entities.

Question 22Business Intelligence and Looker Fundamentals

Why is defining a primary_key on a view important when that view is joined into an Explore?

  1. It enforces referential integrity at query time
  2. It automatically creates an index on the database table
  3. It gives Looker the unique identifier needed to compute symmetric aggregates correctly Correct answer.
  4. It prevents users from filtering on the view's fields

Explanation

The primary_key marks the unique row identifier so symmetric aggregates can de-duplicate and sum correctly across joins. Looker does not create database indexes, enforce referential integrity, or block filtering based on primary keys.

Question 23Business Intelligence and Looker Fundamentals

A developer uses a refinement to change a measure in a shared view. What is the scope of that change?

  1. It applies wherever the refined view is used, altering the existing definition Correct answer.
  2. It creates a new independent view with the same name
  3. It only affects dashboards that were built after the refinement
  4. It applies only to the single Explore listed first in the model

Explanation

A refinement modifies the existing view definition in place, so the change takes effect everywhere that view is used. It does not create a separate view, depend on dashboard creation order, or limit itself to one Explore.

Question 24Business Intelligence and Looker Fundamentals

A query joins orders to order_items and shows a sum of order total alongside a count of line items. What problem do symmetric aggregates solve here?

  1. Slow database response due to lack of indexes
  2. Missing joins between the two views
  3. Ambiguous field names between the views
  4. Double-counting of order totals caused by the one-to-many fan-out Correct answer.

Explanation

The one-to-many join repeats each order row per line item, which would inflate a naive sum of order totals. Symmetric aggregates use the primary key to de-duplicate before aggregating. Missing joins, indexing, and naming conflicts are separate issues.

Question 25Business Intelligence and Looker Fundamentals

A persistent derived table fails to build in the production environment while building fine in development. Which explanation is most consistent with LookML behavior?

  1. The PDT's SQL is only valid in development mode
  2. Production automatically disables all derived tables
  3. The production connection uses a different scratch schema or lacks write permissions for the PDT Correct answer.
  4. The development model contains a syntax error that production ignores

Explanation

PDTs are written to the connection's temp schema, so production may use a different schema or credentials without write access. A syntax error would break both environments, production does not disable PDTs wholesale, and SQL validity is not environment-specific in that way.

Question 26Business Intelligence and Looker Fundamentals

In Looker, which layer sits between the database and the Explore interface and defines dimensions, measures, and joins?

  1. The dashboard tile layer
  2. The user attribute layer
  3. The LookML model layer Correct answer.
  4. The scheduled delivery layer

Explanation

LookML is Looker's modeling language; it declares views, dimensions, measures, and joins that the Explore interface then exposes to users. Dashboards, schedules, and user attributes all consume that modeled layer rather than replace it.

Question 27Business Intelligence and Looker Fundamentals

Which Looker concept refers to a curated, user-facing starting point built on a model that exposes selected fields and joins for self-serve querying?

  1. A connection
  2. A project manifest
  3. A datagroup
  4. An Explore Correct answer.

Explanation

An Explore is the query surface users open; it bundles a base view with joins, selected fields, and default filters. Projects, datagroups, and connections are development and infrastructure objects, not the querying surface.

Question 28Business Intelligence and Looker Fundamentals

A dimension of type string is defined in a view. What does Looker do when a user selects it and groups by it in an Explore?

  1. It converts the column to a numeric measure automatically
  2. It adds a GROUP BY on the underlying column and returns distinct values in the result Correct answer.
  3. It hides the field unless a filter is applied
  4. It returns every row without grouping

Explanation

Dimensions are the grouping fields of a query; selecting one places the underlying SQL expression in the GROUP BY and the SELECT list. Looker does not silently convert a string dimension into a measure or suppress grouping.

Question 29Business Intelligence and Looker Fundamentals

Which Looker object stores a saved query with its own filters and can be shared, scheduled, or opened later without redefining the logic?

  1. A user attribute
  2. A model file
  3. A view file
  4. A Look Correct answer.

Explanation

A Look saves a query definition including fields, filters, sorts, and pivots so it can be reopened, shared, or scheduled. View and model files are LookML code, and user attributes are values used for access control.

Question 30Business Intelligence and Looker Fundamentals

In Looker, what does the primary_key parameter on a dimension signal to the modeling engine?

  1. That the dimension must be numeric
  2. That the dimension uniquely identifies rows in the view Correct answer.
  3. That the dimension should be hidden from the field picker
  4. That the dimension is used only in filters

Explanation

Declaring a primary key identifies the grain of the view so Looker can correctly compute counts and symmetric aggregates across joins. It has no effect on visibility, data type, or filter-only behavior.

Question 31Business Intelligence and Looker Fundamentals

What is the purpose of the sql_distinct_key parameter in a measure definition?

  1. It supplies the expression used to deduplicate rows when computing symmetric aggregates Correct answer.
  2. It sets the display format of the measure
  3. It restricts the measure to a single user
  4. It orders the rows returned by the measure

Explanation

When a measure aggregates over a joined, fanning-out relationship, Looker needs a way to identify distinct rows; sql_distinct_key provides that expression. Sorting, formatting, and user scoping are handled by other parameters.

Question 32Business Intelligence and Looker Fundamentals

Which LookML parameter on a join tells Looker the join should not fan out the base view's rows for aggregation purposes?

  1. required_joins
  2. foreign_key on the joined view
  3. sql_on with a WHERE clause
  4. relationship: many_to_one Correct answer.

Explanation

The relationship parameter declares cardinality; many_to_one tells Looker each base row matches at most one joined row, which affects how aggregates are computed. The other options control join SQL, key hints, and join ordering rather than cardinality.

Question 33Business Intelligence and Looker Fundamentals

A developer wants a measure to sum only rows where the order status is complete, without filtering the whole query. Which LookML construct achieves this?

  1. A measure with a filters parameter listing the status condition Correct answer.
  2. A dimension of type tier on status
  3. An access_filter on the Explore
  4. A sql_always_where on the Explore

Explanation

The filters parameter on a measure applies a conditional aggregation so only matching rows contribute to that measure while other measures remain unaffected. Explore-level filters and access filters constrain the entire query rather than one measure.

Question 34Business Intelligence and Looker Fundamentals

What does the persist_with parameter control on a persistent derived table?

  1. Which columns are indexed after the build
  2. Which database dialect is used to build the table
  3. Which users may query the table
  4. Which datagroup triggers rebuilds of the table Correct answer.

Explanation

persist_with links a persistent derived table to a datagroup, and the datagroup's trigger determines when the table is rebuilt. User access, dialect, and indexing are governed by other settings.

Question 35Business Intelligence and Looker Fundamentals

Which LookML parameter renames how a field appears in the field picker while leaving its LookML name unchanged for reference in other fields?

  1. description
  2. group_label
  3. label Correct answer.
  4. view_label

Explanation

The label parameter sets the human-readable name shown in the UI while the field's LookML name stays stable for references. The other parameters affect grouping headers or help text, not the field's displayed name.

Question 36Business Intelligence and Looker Fundamentals

A developer needs to expose a derived table whose SQL is written inline in the view rather than referencing a physical table. Which approach is correct?

  1. Add a join to the same view with relationship many_to_many
  2. Set the view's sql_table_name to a subquery string
  3. Define derived_table with a sql block inside the view Correct answer.
  4. Create a measure of type sum over the base table

Explanation

An inline derived table is declared with a derived_table parameter containing a sql: block, which Looker wraps in a subquery. sql_table_name expects a table reference, and measures or joins cannot substitute for a derived table definition.

Question 37Business Intelligence and Looker Fundamentals

Which Looker feature allows a modeler to publish a predefined set of fields and filters that users can add to a query in one action?

  1. A datagroup on the Explore
  2. An access grant on the model
  3. A connection-level dialect override
  4. A field set exposed through a custom field or a saved Look Correct answer.

Explanation

Sets of fields can be bundled so users apply them together, typically through a saved Look or a curated Explore with a defined field set. Access grants, datagroups, and dialect overrides govern permissions, caching, and SQL generation.

Question 38Business Intelligence and Looker Fundamentals

What does the sql_always_where parameter on an Explore do?

  1. It limits which users can open the Explore
  2. It sets the default sort order of results
  3. It defines the join condition to the base view
  4. It appends a condition to every query run against that Explore Correct answer.

Explanation

sql_always_where injects a mandatory SQL condition into every query on the Explore, which is useful for scoping data such as a single tenant. Join conditions, sorting, and user access are controlled by separate parameters.

Question 39Business Intelligence and Looker Fundamentals

A user reports that a revenue measure returns a value far larger than expected after a join to a line-item table. Which explanation fits Looker's aggregation behavior?

  1. The Explore has a default sort applied
  2. The user's timezone setting differs from the database timezone
  3. The measure's value_format is misconfigured
  4. The join fans out base rows and the measure lacks symmetric aggregate handling for that relationship Correct answer.

Explanation

When a one-to-many join multiplies base rows, a naive sum double-counts the base measure; Looker's symmetric aggregates correct this when the relationship and primary keys are declared properly. Formatting, sorting, and timezone settings do not inflate a sum this way.

Question 40Business Intelligence and Looker Fundamentals

A developer wants users to switch a single dimension between two different SQL expressions without editing LookML. Which approach is appropriate?

  1. Define a parameter with allowed values and reference it in the dimension's sql Correct answer.
  2. Add an access_filter to the Explore
  3. Create two separate Explores and ask users to choose
  4. Set the dimension's hidden parameter to yes

Explanation

A Liquid parameter with allowed_values lets users pick a value that the dimension's sql uses via the parameter tag, changing the generated SQL at query time. Separate Explores, access filters, and hiding fields do not provide a runtime expression switch.

Question 41Business Intelligence and Looker Fundamentals

Which statement best describes how Looker handles a query that contains only measures and no dimensions?

  1. It automatically adds the primary key as a dimension
  2. It returns a single aggregated row for the whole result set Correct answer.
  3. It returns no rows because grouping is missing
  4. It returns one row per underlying record

Explanation

With no dimensions, the query has no GROUP BY columns, so aggregate functions collapse the entire filtered set into one row. Looker does not inject a primary key or return per-record rows in that case.

Question 42Business Intelligence and Looker Fundamentals

A modeler sets a dimension's type to number and its value_format to a currency pattern. What is the effect when the field is used in a filter?

  1. The filter accepts numeric comparisons while the displayed values use the currency format Correct answer.
  2. The field can no longer be used in the GROUP BY
  3. The field becomes a measure automatically
  4. The filter accepts only text matching the currency symbol

Explanation

Type determines how values are compared and filtered, while value_format controls display. A numeric dimension with currency formatting still supports numeric filter operators and remains a groupable dimension.

Question 43Business Intelligence and Looker Fundamentals

Which Looker capability lets a user explore data without writing SQL by selecting fields, filters, and pivots in a browser interface?

  1. The project import tool
  2. Explore query building Correct answer.
  3. The LookML validator
  4. The database connection test

Explanation

Explore provides the point-and-click query builder that translates field selections, filters, and pivots into SQL. The validator, import tool, and connection test are development and administration utilities.

Question 44Business Intelligence and Looker Fundamentals

What does a datagroup with a sql_trigger do in a Looker model?

  1. It sets the default number of rows returned
  2. It defines the list of fields shown in an Explore
  3. It stores user-specific filter values
  4. It evaluates a SQL query to decide when cached results and persistent tables are stale Correct answer.

Explanation

A sql_trigger datagroup runs a query whose changing result marks the cache as stale, prompting rebuilds of dependent persistent tables. Field lists, user filters, and row limits are configured elsewhere.

Question 45Business Intelligence and Looker Fundamentals

Which statement accurately describes how Looker resolves a field reference such as ${orders.total_revenue} inside a measure's sql?

  1. It substitutes the referenced field's SQL expression, respecting the view where it is defined Correct answer.
  2. It substitutes the literal string of the field name
  3. It triggers a separate query for the referenced field
  4. It requires the field to be selected by the user

Explanation

Liquid-style field references are replaced with the SQL expression of the referenced field, qualified by its view, which lets measures compose on other fields. They do not inject the field's name as text, spawn extra queries, or depend on user selection.

Question 46Business Intelligence and Looker Fundamentals

A developer wants to prevent a specific dimension from appearing in the field picker while still allowing it to be referenced by other LookML fields. Which parameter is appropriate?

  1. hidden: yes Correct answer.
  2. primary_key: yes
  3. suggest_dimension
  4. required: yes

Explanation

The hidden parameter removes a field from the UI while keeping it usable in LookML references and Liquid logic. The other parameters mark row identity, force a filter, or configure suggestions.

Question 47Business Intelligence and Looker Fundamentals

A persistent derived table builds successfully in development but fails in production. Which cause is most consistent with Looker's persistence model?

  1. The production connection uses a different dialect that ignores derived tables
  2. The production model has fewer Explores than development
  3. The development IDE automatically rewrites SQL for production
  4. The production datagroup trigger has not fired, so the table does not exist yet Correct answer.

Explanation

Persistent tables are built on datagroup triggers; if the trigger has not fired in production, the table may be missing or stale, causing query failures. Looker does not rewrite SQL between environments based on the IDE, and dialect support or Explore counts do not explain this failure.

Question 48Business Intelligence and Looker Fundamentals

An Explore joins customers to orders with relationship one_to_many and a measure counts distinct customers using sql_distinct_key. Why does this produce a correct count despite fan-out?

  1. The primary key of orders replaces the customer key
  2. Looker deduplicates by the distinct key before aggregating, so repeated customer rows collapse Correct answer.
  3. The database automatically removes duplicates before returning rows
  4. The count measure ignores the join entirely

Explanation

Symmetric aggregates use the distinct key to compute the measure at the correct grain and then rejoin, preventing fan-out from inflating counts. The database does not deduplicate on its own, and the measure still spans the join.

Question 49Business Intelligence and Looker Fundamentals

A refinement is applied to a shared view to change one measure's sql. What is the scope of that change in Looker?

  1. It changes the underlying database table definition
  2. It applies wherever the refined view is used within that model, leaving the original view file intact Correct answer.
  3. It permanently overwrites the original view file for all models
  4. It affects only the current user's session

Explanation

A refinement extends or overrides a view within the model where the refinement is declared, without editing the base view file or affecting other models. It is not session-scoped and never alters database objects.

Question 50Business Intelligence and Looker Fundamentals

A modeler needs a measure that returns the average order value per customer, where each customer contributes one averaged value and customers with no orders are excluded. Which design is most sound?

  1. Sum order totals and divide by the number of rows in the customers view
  2. Average the order total directly in the orders view and rely on symmetric aggregates
  3. Use a count measure on the orders primary key
  4. Build a customer-level derived table that aggregates orders first, then average over that table Correct answer.

Explanation

Averaging an average requires fixing the grain first; a customer-level derived table produces one row per customer so the outer average is correct. Symmetric aggregates fix fan-out but not the grain mismatch, and the other options compute different quantities.